使用concat
函数合并数据集
通过列表的形式,将需要合并的数据集作为第一个参数传入。数据集合并默认是按照第0个数轴合并,此时根据column索引值将对应的数据合并。没有的值则用NaN
代替。
可以通过参数axis
参数指定按照哪个数轴进行合并。
import numpy as np
import pandas as pd
arr = np.random.randint(10,size=(3,4))
df1 = pd.DataFrame(arr, columns=["A", "B", "C", "D"])
df1
arr = np.random.randint(10,size=(3,3))
df2 = pd.DataFrame(arr, columns=["C", "D", "E"])
df2
- 默认数据集是按照第0个轴合并的。对于某个数据集在某些列没有数据,则又NaN代替。
pd.concat([df1, df2], axis=0)
| A | B | C | D | E |
---|
0 | 5.0 | 4.0 | 4 | 8 | NaN |
---|
1 | 8.0 | 4.0 | 5 | 4 | NaN |
---|
2 | 3.0 | 1.0 | 8 | 1 | NaN |
---|
0 | NaN | NaN | 7 | 5 | 6.0 |
---|
1 | NaN | NaN | 0 | 3 | 5.0 |
---|
2 | NaN | NaN | 4 | 6 | 9.0 |
---|
- 通过修改
axis
参数,可以设置根据哪个轴进行合并。
pd.concat([df1, df2], axis=1)
| A | B | C | D | C | D | E |
---|
0 | 5 | 4 | 4 | 8 | 7 | 5 | 6 |
---|
1 | 8 | 4 | 5 | 4 | 0 | 3 | 5 |
---|
2 | 3 | 1 | 8 | 1 | 4 | 6 | 9 |
---|
- 默认合并的模式是
outer
,即对于数据集没有的列,用NaN代替。可以使用join
参数指定为inner
模式,即只取所有数据集都共有的列进行合并。
pd.concat([df1, df2], join="outer")
| A | B | C | D | E |
---|
0 | 5.0 | 4.0 | 4 | 8 | NaN |
---|
1 | 8.0 | 4.0 | 5 | 4 | NaN |
---|
2 | 3.0 | 1.0 | 8 | 1 | NaN |
---|
0 | NaN | NaN | 7 | 5 | 6.0 |
---|
1 | NaN | NaN | 0 | 3 | 5.0 |
---|
2 | NaN | NaN | 4 | 6 | 9.0 |
---|
pd.concat([df1, df2], join="inner")