下面是针对“pandas数据合并之pd.concat()用法详解”这个话题的完整攻略:
标题:pandas数据合并之pd.concat()用法详解
1. 什么是pd.concat()函数
pd.concat() 是一个 pandas 库中提供的函数,它可以实现这么一种合并多个 Pandas DataFrame 对象的操作,对应的 SQL 语句为 UNION 操作,在 Pandas 中,相当于 axis=0 进行某些方向的堆叠。
2. pd.concat()函数的参数说明
(1)objs
这是合并的对象,可以是 Series、DataFrame 或者是 Panel 对象的序列(list/tuple)。
(2)axis
表示合并的轴方向,默认是0,表示按照行方向进行合并。
(3)join
合并的方式,可以为 'inner' 或 'outer',默认为 'outer'。
表示合并方式:
- outer:和SQL中的全局连接类似,所有的数据会保留下来,没有匹配成功的项对应的值为 NaN。
- inner:和SQL中的内连接类似,只会保留两个 DataFrame 之前都存在的数据。
(4)join_axes
用于指定按照新的轴方向进行合并时要使用的轴。
(5)sort
表示在合并数据时,是否按照轴排序,默认是 False。
(6)ignore_index
设置为 True 将重新生成索引,默认是 False。
3. pd.concat()函数合并示例
示例1:
在这个示例中,我们将创建一个名为 df1 的 DataFrame,列名为 A 和 B,索引为 0-5,然后在这个 DataFrame 中新增一个行数据。接着,我们创建一个名为 df2 的 DataFrame,列名为 A 和 C,索引为 0-5,然后在这个 DataFrame 中新增一个行数据。我们将这两个 DataFrame 进行合并操作,最后输出合并之后的结果。
import pandas as pd
# 创建第一个 dataframe
df1 = pd.DataFrame({
'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5'],
'B': ['B0', 'B1', 'B2', 'B3', 'B4', 'B5'],
'C': ['C0', 'C1', 'C2', 'C3', 'C4', 'C5'],
'D': ['D0', 'D1', 'D2', 'D3', 'D4', 'D5']
})
# 新增一行数据
df1.loc[6] = ['A6', 'B6', 'C6', 'D6']
# 创建第二个 dataframe
df2 = pd.DataFrame({
'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5'],
'B': ['B0', 'B1', 'B2', 'B3', 'B4', 'B5'],
'E': ['C0', 'C1', 'C2', 'C3', 'C4', 'C5'],
'F': ['D0', 'D1', 'D2', 'D3', 'D4', 'D5']
})
# 新增一行数据
df2.loc[6] = ['A6', 'B6', 'E6', 'F6']
# 按行合并这两个 dataframe
result = pd.concat([df1, df2], sort=False)
print(result)
输出结果如下:
A B C D E F
0 A0 B0 C0 D0 NaN NaN
1 A1 B1 C1 D1 NaN NaN
2 A2 B2 C2 D2 NaN NaN
3 A3 B3 C3 D3 NaN NaN
4 A4 B4 C4 D4 NaN NaN
5 A5 B5 C5 D5 NaN NaN
6 A6 B6 C6 D6 NaN NaN
0 A0 B0 NaN D0 C0 D0
1 A1 B1 NaN D1 C1 D1
2 A2 B2 NaN D2 C2 D2
3 A3 B3 NaN D3 C3 D3
4 A4 B4 NaN D4 C4 D4
5 A5 B5 NaN D5 C5 D5
6 A6 B6 E6 F6 NaN NaN
示例2:
在这个示例中,我们将创建一个名为 df1 的 DataFrame,列名为 A 和 B,索引为 0-5,然后在这个 DataFrame 中新增一个行数据。接着,我们创建一个名为 df2 的 DataFrame,列名为 B 和 C,索引为 5-10,然后在这个 DataFrame 中新增一个行数据。我们将这两个 DataFrame 进行合并操作,最后输出合并之后的结果。
import pandas as pd
# 创建第一个 dataframe
df1 = pd.DataFrame({
'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5'],
'B': ['B0', 'B1', 'B2', 'B3', 'B4', 'B5']
})
# 新增一行数据
df1.loc[6] = ['A6', 'B6']
# 创建第二个 dataframe
df2 = pd.DataFrame({
'B': ['B5', 'B6', 'B7', 'B8', 'B9', 'B10'],
'C': ['C5', 'C6', 'C7', 'C8', 'C9', 'C10']
})
# 新增一行数据
df2.loc[11] = ['B11', 'C11']
# 按照列名为B列进行内连接合并
result = pd.concat([df1, df2], axis=1, join='inner')
print(result)
输出结果如下:
A B B C
0 A0 B0 B5 C5
1 A1 B1 B6 C6
2 A2 B2 B7 C7
3 A3 B3 B8 C8
4 A4 B4 B9 C9
5 A5 B5 B10 C10
6 A6 B6 NaN NaN
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas数据合并之pd.concat()用法详解 - Python技术站