两个df有部分相同的日期索引,如何合并能让日期相同的索引不重复显示
时间: 2024-10-08 08:20:27 浏览: 37
当你有两个DataFrame,它们都有部分相同的日期索引(Index),并且你想将它们合并在一起,同时避免重复的日期行,你可以使用`pandas`库中的`concat`或`merge`函数。这里我们假设这两个DataFrame分别是`df1`和`df2`。
1. **使用 concat()**:
如果你想简单地将两份数据堆叠在一起,可以这样做:
```python
merged_df = pd.concat([df1, df2], ignore_index=True) # 先忽略索引,再按顺序排列
merged_df.drop_duplicates(subset='date', keep='first') # 删除重复的日期行
```
2. **使用 merge()**:
如果你想基于共享的日期索引进行合并,可以做内连接(inner join):
```python
merged_df = pd.merge(df1, df2, on='date', how='outer', suffixes=('_df1', '_df2')) # 连接相同日期
merged_df = merged_df.loc[~merged_df.duplicated('date')] # 删除重复行
```
使用`suffixes`参数可以帮助识别来自每个DataFrame的数据。
请注意,`keep='first'`或`how='inner'`会保留第一个出现的记录,如果需要选择其他规则(如保留最后一个、特定值等),需调整相应部分。
阅读全文