Отбрасывать строки, если они не равны другим строкам pandas

#pandas

#pandas

Вопрос:

Вот df :

 col1    col2    col3
A   A   23
B   A   32
C   D   43
E   E   54
  

и идея состоит в том, чтобы сохранять только строки, где col1 и col2 равны, и получать :

 col1    col2    col3
A   A   23
E   E   54
  

Я пытался:

 for col1,col2 in zip(df1.col1, df1.col2): 
    if col1 != col2:
        df2.drop(col1)
  

Ответ №1:

Вы можете выбрать все строки с одинаковыми значениями в обоих столбцах с помощью boolean indexing :

 df = df1[df1.col1 == df1.col2]
#alternative
#df = df1[df1.col1.eq(df1.col2)]
print (df)
  col1 col2  col3
0    A    A    23
3    E    E    54