pandas怎么合并2个dataframe
时间: 2023-09-11 15:05:08 浏览: 152
### 回答1:
在 pandas 中,你可以使用 `pd.concat()` 函数来合并两个 dataframe。你可以通过传入一个列表,其中列表中包含你想要合并的 dataframe,来实现这一点。例如:
```
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']},
index=[4, 5, 6, 7])
df3 = pd.concat([df1, df2])
print(df3)
```
这将会输出:
```
A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
4 A4 B4 C4 D4
5 A5 B5 C5 D5
6 A6 B6 C6 D6
7 A7 B7 C7 D7
```
同时,你也可以使用 `pd.merge()` 函数来将两个 dataframe 中的共同列合并在一起。这个函数的用法类似于 SQL 中的 `JOIN` 命令。
```
import pandas as pd
left = pd.DataFrame({'key1': ['K0', 'K1', 'K2', 'K3'],
'key2': ['K0', 'K1', 'K0', 'K1'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key1': ['K0', 'K1', 'K2', 'K3'],
'key2': ['K0', 'K0', 'K
### 回答2:
Pandas是一个功能强大的Python库,用于数据处理和分析。要合并两个DataFrame,可以使用其中的合并函数。有几种合并方法可供选择,包括concat、merge和join。
1. 使用concat函数:concat函数可沿着指定的轴将两个DataFrame堆叠在一起,可以沿着行或列进行堆叠。语法如下:
```python
result = pd.concat([df1, df2])
```
其中df1和df2是要合并的两个DataFrame对象。这将在行方向上将df2与df1的末尾连接起来,并生成一个新的DataFrame。
2. 使用merge函数:merge函数根据一个或多个键将两个DataFrame连接在一起。语法如下:
```python
result = pd.merge(df1, df2, on='key')
```
其中df1和df2是要合并的两个DataFrame对象,'key'是它们的公共列。这将基于公共列将两个DataFrame连接起来。
3. 使用join函数:join函数使用DataFrame对象之间的索引连接两个DataFrame对象。语法如下:
```python
result = df1.join(df2)
```
其中df1和df2是要合并的两个DataFrame对象。它将根据索引将两个DataFrame连接起来。
以上是合并两个DataFrame的一些常见方法。这些方法都可以根据需求进行参数调整,例如指定连接方式、是否保留索引等。根据具体情况选择最适合的合并方法。
### 回答3:
在pandas中,可以使用`concat`函数合并两个或多个DataFrame。
`concat`函数的语法为`pd.concat(objs, axis=0, join='outer', ignore_index=False)`,其中:
- `objs`:要合并的DataFrame对象的序列(列表或元组)。
- `axis`:指定合并方向的轴。默认为0,表示按行合并;1表示按列合并。
- `join`:指定连接方式,默认为`'outer'`。可选值为`'inner'`,表示交集;`'outer'`表示并集。
- `ignore_index`:是否忽略合并后的DataFrame的索引,默认为False。
例如,假设我们有两个DataFrame对象`df1`和`df2`,可以使用以下代码将它们按行合并:
```python
import pandas as pd
# 创建DataFrame对象
data1 = {'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2'],
'C': ['C0', 'C1', 'C2']}
df1 = pd.DataFrame(data1)
data2 = {'A': ['A3', 'A4', 'A5'],
'B': ['B3', 'B4', 'B5'],
'C': ['C3', 'C4', 'C5']}
df2 = pd.DataFrame(data2)
# 合并DataFrame对象
result = pd.concat([df1, df2])
print(result)
```
运行以上代码,会输出以下结果:
```
A B C
0 A0 B0 C0
1 A1 B1 C1
2 A2 B2 C2
0 A3 B3 C3
1 A4 B4 C4
2 A5 B5 C5
```
如果想要按列合并两个DataFrame对象,可以设置`axis=1`:
```python
result = pd.concat([df1, df2], axis=1)
```
希望对你有所帮助!
阅读全文