Python Pandas: отфильтруйте фрейм данных на основе серии логических панд - PullRequest
0 голосов
/ 26 февраля 2019

Я знаю, что тема очень хорошо задокументирована, но я не нашел достаточно хорошего решения.У меня есть серия логических панд, myboolseries.У меня есть датафрейм DF.Я хочу отфильтровать df по myboolseries (индекс, где значение равно True).

myboolseries = pd.Series(data = [True, False, True], index = [2,5,8])
mydic = {"Age" : [14,12,55,22,98], "Name" : ["Pierre", "Mike", "Selena", "Victor", "Jesus"], "index" : [2,14,5,99,8]}
df = pd.DataFrame.from_dict(mydic).set_index("index")

Вот мое решение (оно работает), но я ищу более элегантный способ:

myboolseries = myboolseries[myboolseries].index
df[myboolseries]

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

если ваша логическая серия имеет ту же длину, что и ваш DataFrame, вы можете просто:

df = df[boolseries]

вот и все.

0 голосов
/ 26 февраля 2019

Вы можете попробовать это:

df.reindex(myboolseries.loc[lambda x: x].index)

Вывод:

   Age    Name
2   14  Pierre
8   98   Jesus
0 голосов
/ 26 февраля 2019

Попробуйте:

df.loc[df.index.isin(myboolseries.index)][myboolseries]

       Age    Name
index             
2       14  Pierre
8       98   Jesus
...