合并panda中不同列的2个数据帧



我有一个需要合并的大数据集,但我不确定如何获得所需的输出

下面是我所做的一个例子:

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按列缺少值。

您似乎希望NaNs为零,您可以通过在末尾添加.fillna(0)来实现这一点。

merged = df1.merge(df2,on = ['identity','Type'],how ='outer').fillna(0)

啊,好吧,我看到了,所以基本上你的外部联接在我看来是有效的。我看到的唯一问题是Nan值,对吗?我建议对结果使用fillNahttps://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html

最新更新