pd.concat的用法
时间: 2023-07-12 18:38:19 浏览: 101
`pd.concat` 是 pandas 库中的一个函数,它可以将多个 DataFrame 或 Series 对象按照行或列的方向进行拼接。其用法如下:
```python
pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
```
其中,参数的含义如下:
- `objs`:需要拼接的 DataFrame 或 Series 对象的列表或字典。
- `axis`:拼接的方向,0 表示按照行方向拼接,1 表示按照列方向拼接。
- `join`:拼接方式,取值为 `inner` 或 `outer`,默认为 `outer`。
- `ignore_index`:是否忽略原来 DataFrame 的行索引或列索引,重新生成新的连续的行索引或列索引,默认为 `False`。
- `keys`:在拼接的结果中增加一级行索引或列索引,用于标识来自哪个原始 DataFrame 或 Series 对象。
- `levels`, `names`:用于设置多级行索引或列索引的标签和名称。
- `verify_integrity`:是否检查拼接后的结果是否有重复的行或列,默认为 `False`。
- `sort`:是否对拼接后的结果按照行索引或列索引进行排序,默认为 `False`。
- `copy`:是否返回拼接后的结果的副本,默认为 `True`。
例如,我们有两个 DataFrame 对象 `df1` 和 `df2`,它们的列名和行索引都相同,我们可以按照行方向将它们拼接起来:
```python
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
result = pd.concat([df1, df2], axis=0)
print(result)
```
输出结果为:
```
A B
0 1 3
1 2 4
0 5 7
1 6 8
```
注意,拼接后的结果中的行索引是原来的行索引在拼接后的结果中的位置。如果要重新生成新的连续的行索引,可以通过设置 `ignore_index=True` 参数来实现:
```python
result = pd.concat([df1, df2], axis=0, ignore_index=True)
print(result)
```
输出结果为:
```
A B
0 1 3
1 2 4
2 5 7
3 6 8
```
除了按照行方向拼接外,还可以按照列方向拼接,例如:
```python
df3 = pd.DataFrame({'C': [9, 10], 'D': [11, 12]})
result = pd.concat([df1, df3], axis=1)
print(result)
```
输出结果为:
```
A B C D
0 1 3 9 11
1 2 4 10 12
```
注意,拼接时需要保证拼接的 DataFrame 或 Series 对象的行索引或列索引的顺序和名称相同,否则可能会出现拼接后的结果不如预期的情况。
阅读全文