两个数据框的组合-仍显示NaN值

时间:2020-07-20 10:35:00

标签: python pandas

我想用第二个数据帧中的数据填充我的第一个数据帧。由于我不需要任何特殊条件,因此我认为combine_first函数对我来说似乎是正确的选择。

不幸的是,当我尝试合并两个数据框时,结果仍然是原始数据框。

我的代码:

import pandas as pd

df1 = pd.DataFrame({'Gen1': [5, None, 3, 2, 1],
                    'Gen2': [1, 2, None, 4, 5]})

df2 = pd.DataFrame({'Gen1': [None, 4, None, None, None],
                    'Gen2': [None, None, 3, None, None]})

df1.combine_first(df2)

然后,当我print(df1)出现时,在第二行中启动它时得到df1。 我在哪里弄错了?

2 个答案:

答案 0 :(得分:5)

如果分配回输出,对我来说工作很好,但是就地工作的方法DataFrame.update非常相似:

"assets": [
  {
    "glob": "**/*.json",
    "input": "projects/dist/i18n-lib/src/assets",
    "output": "projects/demo-i18n/assets"
  },
  "projects/demo-i18n/src/favicon.ico",
  "projects/demo-i18n/src/assets"
]

df = df1.combine_first(df2)
print (df)
   Gen1  Gen2
0   5.0   1.0
1   4.0   2.0
2   3.0   3.0
3   2.0   4.0
4   1.0   5.0

答案 1 :(得分:1)

combine_first返回具有更改且不更新现有数据框的数据框,因此您应该获取返回数据框

df1=df1.combine_first(df2)