python - Pandas:合并两个数据框列

标签 python pandas dataframe merge

考虑两个数据框:

df_a = pd.DataFrame([
        ['a', 1],
        ['b', 2],
        ['c', NaN],
    ], columns=['name', 'value'])

df_b = pd.DataFrame([
        ['a', 1],
        ['b', NaN],
        ['c', 3],
        ['d', 4]
    ], columns=['name', 'value'])

看起来很像

# df_a
  name  value
0   a   1
1   b   2
2   c   NaN

# df_b
  name  value
0   a   1
1   b   NaN
2   c   3
3   d   4

我想合并这两个数据帧,并用另一列中的现有值填充 value 列的 NaN 值。换句话说,我想要退出:

# DESIRED RESULT
  name  value
0   a   1
1   b   2
2   c   3
3   d   4

当然,我可以使用自定义 .map.apply 来完成此操作,但我想要一个使用 merge 等的解决方案,不编写自定义合并函数。如何做到这一点?

最佳答案

我认为你可以使用combine_first :

print (df_b.combine_first(df_a))
  name  value
0    a    1.0
1    b    2.0
2    c    3.0
3    d    4.0

或者fillna :

print (df_b.fillna(df_a))
  name  value
0    a    1.0
1    b    2.0
2    c    3.0
3    d    4.0

解决方案 update并不像 combine_first 那样常见:

df_b.update(df_a)
print (df_b)
  name  value
0    a    1.0
1    b    2.0
2    c    3.0
3    d    4.0

关于python - Pandas:合并两个数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40051567/

相关文章:

python - low_memory 和 memory_map 标志在 pd.read_csv 中做什么

python - 在 Gephi 中打开之前在 Networkx write_graphml 中添加属性

python - 使用列和行索引作为变量填充 pandas 数据框

r - 生成引用现有变量的动态变量

R,for 数据框列上的循环并需要来自其他列的值

python - 分析 MIPS 二进制文件 : is there a Python library for parsing binary data?

python - type 和 object 原始对象的区别

python - ctypes 包装 "MessageBoxA"示例在 python33 中不起作用

python - 尝试仅使用 while 循环来计算字母出现的次数

python - Pandas 系列SettingWithCopyWarning 以下警告