我想用第二个数据帧中的数据填充我的第一个数据帧。由于我不需要任何特殊条件,因此我认为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。
我在哪里弄错了?
答案 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)