📌  相关文章
📜  根据另一列 pandas 中的值填充一列 - Python (1)

📅  最后修改于: 2023-12-03 14:55:39.561000             🧑  作者: Mango

根据另一列 pandas 中的值填充一列 - Python

在数据分析和处理中,常常需要根据一列数据的值来填充另一列的值。使用 Pandas 库可以轻松地实现这一操作。

下面我们通过几个示例来介绍如何根据另一列 pandas 中的值填充一列。

示例一:根据条件填充一列

例如,我们有一份数据集包含两列:'age' 和 'category'。现在需要根据 'category' 列的值对 'age' 列进行填充。代码实现如下:

import pandas as pd
import numpy as np

df = pd.DataFrame({'age': [25, 30, 35, 40],
                   'category': ['Young', 'Middle', 'Middle', 'Old']})

# 创建一个字典,用于指定不同的填充值
age_map = {'Young': 20, 'Middle': 35, 'Old': 50}

# 根据 'category' 列的值填充 'age' 列
df['new_age'] = df['category'].map(age_map)

print(df)

输出结果如下:

   age category  new_age
0   25    Young       20
1   30   Middle       35
2   35   Middle       35
3   40      Old       50

在代码中,我们通过创建一个字典 age_map 来指定不同的填充值。然后使用 map() 函数,将 'category' 列中的值映射到 age_map 中对应的值。最后将新的填充结果存储到 'new_age' 列中。

示例二:根据多个条件填充一列

有时候,我们需要根据多个条件对一列数据进行填充。例如,如果 'category' 列的值为 'Middle',并且 'age' 列的值大于等于 35,我们希望将 'age' 列的值填充为 40。代码实现如下:

import pandas as pd
import numpy as np

df = pd.DataFrame({'age': [25, 30, 35, 40],
                   'category': ['Young', 'Middle', 'Middle', 'Old']})

# 根据多个条件填充 'age' 列的值
df.loc[(df['category'] == 'Middle') & (df['age'] >= 35), 'new_age'] = 40
df['new_age'].fillna(df['age'], inplace=True)

print(df)

输出结果如下:

   age category  new_age
0   25    Young     25.0
1   30   Middle     30.0
2   35   Middle     40.0
3   40      Old     40.0

在代码中,我们使用 loc() 函数定位满足多个条件的行,并将适当的值填充到 'new_age' 列中。最后,我们使用 fillna() 函数将剩余的缺失值填充为 'age' 列中的值。

示例三:根据一列的缺失值填充另一列的值

有时候,我们需要根据一列的缺失值来填充另一列的值。例如,如果 'new_age' 列的值缺失,我们希望使用 'age' 列的值进行填充。代码实现如下:

import pandas as pd
import numpy as np

df = pd.DataFrame({'age': [25, 30, 35, np.NaN],
                   'category': ['Young', 'Middle', 'Middle', 'Old'],
                   'new_age': [np.NaN, 35, np.NaN, np.NaN]})

# 根据 'new_age' 列的缺失值填充 'age' 列
df['new_age'].fillna(df['age'], inplace=True)

print(df)

输出结果如下:

    age category  new_age
0  25.0    Young     25.0
1  30.0   Middle     35.0
2  35.0   Middle     35.0
3   NaN      Old      NaN

在代码中,我们使用 fillna() 函数将 'new_age' 列中的缺失值填充为 'age' 列中的值。

通过以上示例,我们可以发现 Pandas 库提供了多种便捷的方式来根据一列数据的值来填充另一列的值。