我有两个数据帧共享同一个索引列full_idx
import pandas as pd
df1 = pd.DataFrame({'idx': [1, 2, 4, 8], 'A': ['a', 'b', 'c', 'd'], 'full_idx': ['Cust1', 'Cust2', 'Cust4', 'Cust8']})
df2 = pd.DataFrame({'idx': [2, 4, 9, 11], 'B': [99.1, 11, 13, 0], 'full_idx': ['Cust2', 'Cust4', 'Cust9', 'Cust11']})
我使用这个索引列来创建它的数字版本(idx
),并将其设置为df的索引
df1 = df1.set_index("idx")
df2 = df2.set_index("idx")
每当我加入时,我更喜欢遍历索引,因为这些数据帧的大小相当大,只是我总是会遇到重复的列名。因此,在full_df1
的情况下,full_idx
是重复的。现在,如果我选择在full_idx (just like in
full_df2`上加入,这个问题就会消失
我的问题是关于pd.merge()
的操作顺序:在on=[]
字段中有一列是否会覆盖索引联接,而是会基于on=[]
字段中指定的公共列进行合并?通过分配on=[]
列,我是否失去了基于索引性能提升的合并
full_df1 = pd.merge(df1, df2, right_index=True, left_index=True, sort=False)
full_df2 = pd.merge(df1, df2, right_index=True, left_index=True, on=["full_idx"], sort=False)
完整的df1:
A full_idx_x B full_idx_y
idx
2 b Cust2 99.1 Cust2
4 c Cust4 11.0 Cust4
完整的df2:
A full_idx B
idx
2 b Cust2 99.1
4 c Cust4 11.0
目前没有回答
相关问题 更多 >
编程相关推荐