Pandas中如何在value1列为NaN时将value2列的值合并到该列
Pandas两列合并取数实现方案
你可以直接使用pandas内置的空值填充方法实现需求,核心逻辑是用value2列的值补充value1列的空值,最后仅保留目标列即可。
完整可运行代码示例
import pandas as pd import numpy as np # 构造示例数据,实际使用时替换为你自己的DataFrame即可 df = pd.DataFrame({ 'value1': [100, 123, np.nan, np.nan, 90], 'value2': [np.nan, np.nan, 133, 123, np.nan] }) # 核心操作:用value2的值填充value1的NaN空值 df['value1'] = df['value1'].fillna(df['value2']) # 仅保留合并后的单列,如需列名改为大写Value1可加上下一行注释的代码 # df.rename(columns={'value1': 'Value1'}, inplace=True) df = df[['value1']] # 输出结果验证 print(df)
可选替代方案
也可以使用combine_first方法实现同样效果,该方法会优先取第一个序列的非空值,空值位置自动取第二个序列的对应值:
df['value1'] = df['value1'].combine_first(df['value2']) df = df[['value1']]
两种方案运行后得到的最终结果都和你给出的预期输出完全一致。
内容的提问来源于stack exchange,提问作者Katty_one
相关产品推荐
相关产品推荐

