【发布时间】:2017-08-09 20:52:29
【问题描述】:
我有一只熊猫 df:
df = pd.DataFrame({'id':[1,1,2,2,3],
'type':['a','b','c','d','e'],
'value':[100,200,300,400,500]})
print(df)
id value type
1 100 a
1 200 b
2 300 c
2 400 d
3 500 e
我正在合并相同的数据框以获得组合
df2 = pd.merge(df, df,on=['id'])
print(df2)
id type_x value_x type_y value_y
1 a 100 a 100
1 a 100 b 200
1 b 200 a 100
1 b 200 b 200
2 c 300 c 300
2 c 300 d 400
2 d 400 c 300
2 d 400 d 400
3 e 500 e 500
但我不想要带有value_x = value_y 的列
例如:
id type_x value_x type_y value_y
1 a 100 a 100
合并后可以选择列
df2 = df2[df2.value_x != df2.value_y]
但我不想这样,
还有其他方法可以在合并自身的同时删除这些吗?
我的最终输出(期望):
id type_x value_x type_y value_y
1 a 100 b 200
1 b 200 a 100
2 c 300 d 400
2 d 400 c 300
【问题讨论】:
-
您是从头开始构建 DataFrame,还是这只是一个示例,您必须使用现有框架?
-
@JonClements 这只是一个例子,我有一个类似的数据框,列更多。