在 Pandas 中,您可以使用 combine_first
或 fillna
函数结合逻辑条件来比较两列并根据优先级选择值
import pandas as pd
# 创建一个示例数据框
data = {'A': [1, 2, None, 4],
'B': [None, 3, 4, None]}
df = pd.DataFrame(data)
print("原始数据框:")
print(df)
# 使用combine_first函数根据优先级选择值
# 优先选择A列的值,如果A列为空,则选择B列的值
df['result'] = df['A'].combine_first(df['B'])
print("\n根据优先级选择值(A优先):")
print(df)
# 使用fillna函数根据优先级选择值
# 优先选择A列的值,如果A列为空,则选择B列的值
df['result'] = df['A'].fillna(df['B'])
print("\n根据优先级选择值(A优先):")
print(df)
这个例子首先创建了一个包含两列(A 和 B)的数据框,其中一些单元格为空。然后使用 combine_first
和 fillna
函数,根据优先级从 A 和 B 列中选择值。在两个示例中,都是优先选择 A 列的值,如果 A 列为空,则选择 B 列的值。
运行上述代码后,您将看到以下输出:
原始数据框:
A B
0 1.0 NaN
1 2.0 3.0
2 NaN 4.0
3 4.0 NaN
根据优先级选择值(A优先):
A B result
0 1.0 NaN 1.0
1 2.0 3.0 2.0
2 NaN 4.0 4.0
3 4.0 NaN 4.0
根据优先级选择值(A优先):
A B result
0 1.0 NaN 1.0
1 2.0 3.0 2.0
2 NaN 4.0 4.0
3 4.0 NaN 4.0
领取专属 10元无门槛券
手把手带您无忧上云