如何合并两个dataframe表行堆叠
时间: 2024-10-09 13:05:01 浏览: 45
Pandas 合并多个Dataframe(merge,concat)的方法
在Python的数据分析库pandas中,你可以使用`concat()`函数或者`merge()`函数结合`stack()`操作来合并并堆叠两个DataFrame。以下是两种常见方法:
1. 使用`concat() + stack()`:
```python
import pandas as pd
# 假设df1和df2是你要合并的两个DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': [1, 2, 3]})
df2 = pd.DataFrame({'A': ['A0', 'A2', 'A3'], 'C': [4, 5, 6]})
# 合并行数据(堆叠)
merged_df = pd.concat([df1, df2], ignore_index=True) # 首先水平合并
stacked_df = merged_df.stack() # 然后通过索引将列变为值
# 输出结果是一个Series,如果你想要一个DataFrame,可以指定新轴
print(stacked_df)
```
2. 使用`merge() + pivot()`:
如果你需要基于共享的键进行合并,并且想保留原始列的层次结构,`merge`加上`pivot`也是可行的:
```python
merged_df = pd.merge(df1, df2, on='A') # 按'A'列合并
stacked_pivot_df = merged_df.pivot(index='A', columns='level_0', values='B:C') # 根据索引和列名堆叠
print(stacked_pivot_df)
```
阅读全文