Python拼接dataframe
时间: 2024-06-23 09:02:46 浏览: 104
Python库 | mssql_dataframe-1.0.0.tar.gz
在Python中,你可以使用pandas库来拼接(或合并)DataFrame。这里有两个常见的情况:
1. **内连接(Inner Join)[^1]**: 如果你想只保留两个DataFrame在相同索引位置上的匹配行,可以使用`merge()`函数,设置`left_index=True`和`right_index=True`,以及`how='inner'`。如示例所示:
```python
import pandas as pd
df1 = pd.DataFrame({'A': ['a', 'b', 'd', 'e', 'h'], 'time': [1, 2, 4, 5, 7]}, index=[1, 2, 4, 5, 7])
df2 = pd.DataFrame({'B': ['AA', 'BB', 'CC', 'EE', 'FF'], 'time': [1, 2, 3, 5, 6]}, index=[1, 2, 3, 5, 6])
df_inner = df1.merge(df2, how='inner', left_index=True, right_index=True)
print(df_inner)
```
2. **外连接(Outer Join)**: 如果你想保留所有源DataFrame中的行,即使某些行在另一个DataFrame中没有对应,可以使用`how='outer'`。例如,如果你有多个DataFrame要合并,可以使用`reduce()`函数和`pd.merge()`的`outer`连接方式:
```python
dataframes = [df1, df2] # 假设df3, df4...也在此列表中
merged_df = reduce(lambda left, right: pd.merge(left, right, on='time', how='outer'), dataframes)
```
这将创建一个新的DataFrame,其中包含所有源DataFrame的行,并根据'time'列进行合并。
阅读全文