Pandas 多表格拼接
时间: 2023-07-24 13:31:21 浏览: 88
利用pandas合并多个excel的方法示例
5星 · 资源好评率100%
在 Pandas 中,可以使用 merge、concat 或者 join 等方法来进行多表格拼接。这些方法的使用场景略有不同,下面分别介绍。
## merge 方法
merge 方法可以将两个或多个 DataFrame 按照指定的列进行合并。可以使用 on、left_on 和 right_on 参数来指定合并的列,使用 how 参数来指定合并方式(inner、outer、left 或 right)。示例代码如下:
```python
import pandas as pd
# 创建示例数据
df1 = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35]
})
df2 = pd.DataFrame({
'name': ['David', 'Eva', 'Frank'],
'age': [40, 45, 50],
'salary': [8000, 9000, 10000]
})
# 使用 merge 方法合并两个 DataFrame
result = pd.merge(df1, df2, on='age', how='inner')
print(result)
```
在上面的示例代码中,我们首先创建了两个示例数据,包含了姓名和年龄信息。然后,我们使用 merge 方法按照年龄信息将这两个 DataFrame 合并成一个新的 DataFrame,使用 inner 方式进行合并。最后,我们打印出了合并后的结果。
## concat 方法
concat 方法可以将多个 DataFrame 沿着某一个轴进行拼接。可以使用 axis 参数来指定拼接的轴(0 表示按行拼接,1 表示按列拼接)。示例代码如下:
```python
import pandas as pd
# 创建示例数据
df1 = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35]
})
df2 = pd.DataFrame({
'name': ['David', 'Eva', 'Frank'],
'age': [40, 45, 50],
'salary': [8000, 9000, 10000]
})
# 使用 concat 方法拼接两个 DataFrame
result = pd.concat([df1, df2], axis=0)
print(result)
```
在上面的示例代码中,我们首先创建了两个示例数据,包含了姓名、年龄和薪资信息。然后,我们使用 concat 方法按行拼接这两个 DataFrame,生成一个新的 DataFrame。最后,我们打印出了拼接后的结果。
## join 方法
join 方法可以将两个 DataFrame 按照索引进行合并。可以使用 on、left_on 和 right_on 参数来指定合并的索引,使用 how 参数来指定合并方式。示例代码如下:
```python
import pandas as pd
# 创建示例数据
df1 = pd.DataFrame({
'age': [25, 30, 35]
}, index=['Alice', 'Bob', 'Charlie'])
df2 = pd.DataFrame({
'salary': [8000, 9000, 10000]
}, index=['David', 'Eva', 'Frank'])
# 使用 join 方法合并两个 DataFrame
result = df1.join(df2, how='outer')
print(result)
```
在上面的示例代码中,我们首先创建了两个示例数据,包含了年龄信息和薪资信息,并使用姓名作为索引。然后,我们使用 join 方法按照索引将这两个 DataFrame 合并成一个新的 DataFrame,使用 outer 方式进行合并。最后,我们打印出了合并后的结果。
阅读全文