查找重复项的最快方法是将A列中的值与B列中的值颠倒过来?
例如,如果我有一个DataFrame:
Column A Column B
0 C P
1 D C
2 L G
3 A D
4 B P
5 B G
6 P B
7 J T
8 P C
9 J T
结果将是:
Column A Column B
0 C P
8 P C
4 B P
6 P B
我尝试过:
df1 = df
df2 = df
for i in df2.index:
res = df1[(df1['Column A'] == df2['Column A'][i]) & (df1['Column B'] == df2['Column B'][i])]
但这非常慢,并且会迭代相同的值...
答案 0 :(得分:3)
将merge
与重命名的列DataFrame
一起使用:
d = {'Column A':'Column B','Column B':'Column A'}
df = df.merge(df.rename(columns=d))
print (df)
Column A Column B
0 C P
1 B P
2 P B
3 P C
答案 1 :(得分:0)
您可以尝试使用reindex
进行反转。
column_Names=["B","A"]
df=df.reindex(columns=column_Names)
或者您可以这样做:
col_list = list(df) # get a list of the columns
col_list[0], col_list[1] = col_list[1], col_list[0]
df.columns = col_list # assign back