📅  最后修改于: 2023-12-03 15:33:23.928000             🧑  作者: Mango
在进行数据分析过程中,经常需要将两个不同的数据框合并成一个,但是两个数据框可能具有不同的列数或者列名,并且需要对合并后的数据框进行一些处理。本文将介绍如何使用Pandas库合并不同列的数据框。
Pandas提供了merge()函数来合并数据框,这个函数的用法如下:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True,
suffixes=('_x', '_y'), copy=True, indicator=False,
validate=None)
我们使用如下两个数据框来进行示例:
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
'value': [5, 6, 7, 8],
'new_value': [9, 10, 11, 12]})
print(df1)
print(df2)
输出结果如下:
key value
0 A 1
1 B 2
2 C 3
3 D 4
key value new_value
0 B 5 9
1 D 6 10
2 E 7 11
3 F 8 12
我们需要将两个数据框合并成一个,同时保留所有的列,可以使用下面的代码:
result = pd.merge(df1, df2, on='key', how='outer')
print(result)
输出结果如下:
key value_x value_y new_value
0 A 1.0 NaN NaN
1 B 2.0 5.0 9.0
2 C 3.0 NaN NaN
3 D 4.0 6.0 10.0
4 E NaN 7.0 11.0
5 F NaN 8.0 12.0
可以看到,合并后的数据框中保留了所有的列,并且缺少的部分填充为NaN。如果需要指定其他的合并方式,比如只保留左侧数据框的数据,可以设置how参数的值为left,代码如下:
result = pd.merge(df1, df2, on='key', how='left')
print(result)
输出结果如下:
key value_x value_y new_value
0 A 1 NaN NaN
1 B 2 5.0 9.0
2 C 3 NaN NaN
3 D 4 6.0 10.0
本文介绍了如何使用Pandas库合并不同列的数据框。在实际应用中,根据具体的需求选择不同的合并方式和参数,可以达到更好的效果。