有多个dataframe数据,均含有相同的列a和b,此外的列均不同,将这些数据进行合并
时间: 2024-03-27 14:40:32 浏览: 117
pandas DataFrame实现几列数据合并成为新的一列方法
要将多个dataframe数据合并,需要使用pandas库中的merge()函数。merge()函数可以将两个dataframe按照指定的列进行合并。
例如,假设有三个dataframe,分别是df1、df2、df3,它们的列名和数据分别如下:
``` python
import pandas as pd
df1 = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]})
df2 = pd.DataFrame({'a': [4, 5, 6], 'b': [7, 8, 9], 'd': [10, 11, 12]})
df3 = pd.DataFrame({'a': [7, 8, 9], 'b': [10, 11, 12], 'e': [13, 14, 15]})
```
要将这三个dataframe按照列a和b进行合并,可以使用merge()函数:
``` python
result = pd.merge(df1, pd.merge(df2, df3, on=['a', 'b']), on=['a', 'b'])
```
其中,merge()函数的第一个参数是要合并的dataframe,on参数是指定合并的列。合并后的结果存储在result变量中,结果如下:
```
a b c d e
0 7 10 9 12 15
1 8 11 8 11 14
2 9 12 9 NaN 13
```
这里的合并是基于列a和b进行的,只有在这两列的值相同的行才会被合并。如果某个dataframe中没有列a或b,那么它们对应的行将被删除。如果某个dataframe中列a或b有重复值,那么合并后的结果将包含这些重复值的所有组合。如果想保留所有行,可以使用outer join,例如:
``` python
result = pd.merge(df1, pd.merge(df2, df3, on=['a', 'b'], how='outer'), on=['a', 'b'], how='outer')
```
这里的how参数设置为'outer',表示使用outer join进行合并,结果会包含所有行。
阅读全文