डुप्लीकेट खोजने का सबसे तेज़ तरीका क्या है जहां कॉलम ए से मूल्य कॉलम बी से मूल्य के साथ उलट दिया गया है?

उदाहरण के लिए, यदि मेरे पास डेटाफ्रेम है:

     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])]

लेकिन यह बहुत धीमा है और यह समान मूल्यों पर पुनरावृति करता है ...

3
ldoe 22 जिंदा 2019, 16:59

2 जवाब

सबसे बढ़िया उत्तर

नाम बदलकर 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
3
jezrael 22 जिंदा 2019, 17:12

आप उलटा करने के लिए 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
0
Sumanth 22 जिंदा 2019, 17:06