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