我有一个需要合并的大数据集,但我不确定如何获得所需的输出
下面是我所做的一个例子:
df1 = pd.DataFrame({'identity': ['A','A','A'], 'Type': ['D','E','F'], 'count_df1': [7,8,9]})
df2 = pd.DataFrame({'identity': ['A'], 'Type':[ 'D'],'Name':['ABC co'],'count_df2':[5]})
merged = df1.merge(df2,on = ['identity','Type'],how ='inner')
我需要合并身份和类型
output:
identity Type Name count_df2
A D ABC co 5
我也尝试过外部加入,
identity Type count_df1 Name_y count_df2
0 A D 7 ABC co 5.0
1 A E 8 NaN NaN
2 A F 9 NaN NaN
----------What i hope to get -------------
identity Type Name count_df1 count_df2
A D ABC co 7 5
A E ABC co 8 0
A F ABC co 9 0
请帮忙!非常感谢
df1.merge(df2, on=['identity','Type'], how='outer').fillna({"count_df2": 0, "Name": "ABC co"})
外部join+fillna按列缺少值。
您似乎希望NaN
s为零,您可以通过在末尾添加.fillna(0)
来实现这一点。
merged = df1.merge(df2,on = ['identity','Type'],how ='outer').fillna(0)
啊,好吧,我看到了,所以基本上你的外部联接在我看来是有效的。我看到的唯一问题是Nan
值,对吗?我建议对结果使用fillNa
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html