2个df拼接去重相同索引
时间: 2024-11-11 20:37:25 浏览: 31
在Pandas库中,如果你有两个DataFrame并且想要将它们按照相同的索引合并,并去除重复的行(也就是去重),你可以使用`concat()`函数结合`drop_duplicates()`方法。首先,你需要将两个DataFrame沿着某个轴方向堆叠起来(默认是列stack),然后删除重复的行。
下面是一个示例:
```python
import pandas as pd
# 假设 df1 和 df2 是你要合并的两个DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 7, 8], 'B': [9, 10, 11]})
# 使用 concat 合并数据,然后 drop_duplicates 根据索引去重
merged_df = pd.concat([df1, df2]).drop_duplicates(subset=['A'], keep='first')
# 如果两个DataFrame的索引完全一致,也可以直接用 merge 函数并指定 how='outer'
# merged_df = pd.merge(df1, df2, how='outer', indicator=True).loc[lambda x: x['_merge'] != 'both']
print(merged_df)
```
在这个例子中,我们通过`keep='first'`保留了第一个出现的重复值(如果`A`相同,其他列的值决定了去留)。如果你想保留所有列都匹配的行,可以使用`keep=False`。
阅读全文