我如何合并两组数据与Pandas在python中不丢失行?



我在Python中使用Pandas来比较两个数据帧。我想把一组数据与另一组数据相匹配。

Dataframe 1

<表类> 名称 tbody><<tr>山姆迈克约翰马修标记

您可以使用pd.merge(..., , how = 'outer')保留所有行并为它们插入Nan,然后使用.fillna(0)并为Nan插入0:

>>> pd.merge(df1, df2, on = 'Name', how = 'outer').fillna(0)
Name      Number
0   Sam       0
1   Mike      76
2   John      92
3   Matthew   0
4   Mark      32

pd.merge(..., , how = 'outer')中,你可以考虑两个DataFrame,如果你想合并一个DataFrame和另一个DataFrame,你可以像下面这样合并,看看这个例子:

>>> df1 = pd.DataFrame({'Name': ['Mike','John','Mark','Matthew']})
>>> df2 = pd.DataFrame({'Name': ['Mike','John','Mark', 'Sara'], 'Number' : [76,92,32,50]})
>>> pd.merge(df1, df2, on='Name', how='outer').fillna(0)
Name    Number
0   Mike     76.0
1   John     92.0
2   Mark     32.0
3   Matthew  0.0
4   Sara     50.0
>>> df1.merge(df2,on='Name', how='left').fillna(0)
Name     Number
0   Mike     76.0
1   John     92.0
2   Mark     32.0
3   Matthew  0.0

最新更新