pandas df merge避免重复的列名

时间:2018-04-09 12:50:38

标签: python-3.x pandas dataframe merge

问题是当merge两个df时,它们都有一个名为A的列,那么结果将是一个A_x和{{1}的df我想知道如何将A_yA保留在一起df并丢弃另一个A_x,以便我以后不必将A重命名为{ "type" : "datetime", "crosshair" : false, "visible" : true, "labels" : { "enabled" : true, "padding" : 10 }, "minTickInterval" : 86400000, "tickLength" : 10, "min" : 1507759200000, "max" : 1523311199999 } 合并后。

2 个答案:

答案 0 :(得分:2)

这取决于是否需要将具有重复列名称的列附加到最终合并的DataFrame

...然后将suffixes参数添加到merge

print (df1.merge(df2, on='Key', suffixes=('', '_')))

-

...如果不使用@Scott Boston解决方案。

答案 1 :(得分:1)

只需在合并之前过滤数据框列。

df1 = pd.DataFrame({'Key':np.arange(12),'A':np.random.randint(0,100,12),'C':list('ABCD')*3})

df2 = pd.DataFrame({'Key':np.arange(12),'A':np.random.randint(100,1000,12),'C':list('ABCD')*3})

df1.merge(df2[['Key','A']], on='Key')

输出:(注意:C不重复)

    A_x  C  Key  A_y
0    60  A    0  440
1    65  B    1  731
2    76  C    2  596
3    67  D    3  580
4    44  A    4  477
5    51  B    5  524
6     7  C    6  572
7    88  D    7  984
8    70  A    8  862
9    13  B    9  158
10   28  C   10  593
11   63  D   11  177