Удаление разных элементов из разных столбцов одновременно с помощью панд - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь удалить разные элементы из разных столбцов из фрейма данных.

Вот что я пробовал до сих пор

xdf
Out[46]: 
   Name        Score1   Score2  Score3        Score4
0  Jack            10  Perfect      10       Perfect
1  Jill            10       10      10  Not Finished
2  Jane            20       10      10             5
3   Tom  Not Finished       15      10             5

drop_list = ["Perfect","Not Finished"]

xdf[~xdf["Score1"].isin(drop_list)]
Out[48]: 
   Name Score1   Score2  Score3        Score4
0  Jack     10  Perfect      10       Perfect
1  Jill     10       10      10  Not Finished
2  Jane     20       10      10             5

вышеупомянутое прекрасно работает, если я хочу удалить только из одного столбца, но я хочу сбросить через несколько столбцов (Score1, Score2, Score3, Score4)

Следующее тоже не работает:

xdf[~xdf[["Score1","Score2","Score3","Score4"]].isin(drop_list)]
Out[49]: 
  Name Score1 Score2  Score3 Score4
0  NaN     10    NaN      10    NaN
1  NaN     10     10      10    NaN
2  NaN     20     10      10      5
3  NaN    NaN     15      10      5

есть идеи? спасибо

1 Ответ

1 голос
/ 23 мая 2019

Используйте DataFrame.any для теста, по крайней мере, один True на строки:

drop_list = ["Perfect","Not Finished"]
df = xdf[~xdf[["Score1","Score2","Score3","Score4"]].isin(drop_list).any(axis=1)]

print (df)
   Name Score1 Score2  Score3 Score4
2  Jane     20     10      10      5

print (xdf[["Score1","Score2","Score3","Score4"]].isin(drop_list))
   Score1  Score2  Score3  Score4
0   False    True   False    True
1   False   False   False    True
2   False   False   False   False
3    True   False   False   False

print (xdf[["Score1","Score2","Score3","Score4"]].isin(drop_list).any())
Score1     True
Score2     True
Score3    False
Score4     True
dtype: bool

print (~xdf[["Score1","Score2","Score3","Score4"]].isin(drop_list).any())

Score1    False
Score2    False
Score3     True
Score4    False
dtype: bool
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...