df.loc [] с несколькими вызовами - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу выполнить поиск в DataFrame, используя два отдельных Callables (один предоставлен пользователем, один параметром).Также допустимо: индексировать по одному Callable и другому фильтру, используя явный синтаксис.

Возможно ли это?Я предполагаю, что это может быть сделано с групповым, но это кажется немного громоздким.

Пример минимального кода:

import pandas as pd  # Version: 0.23.4, Python 2.7
df = pd.DataFrame({'C1': [1, 2,1], 'C2': [3, 4, 10]})


# This works
filter = lambda adf: adf['C1']==1
df.loc[filter]

# So does this
df.loc[df['C2']>5]

# Both of them together works
df.loc[(df['C2']>5) & (df['C1']==1)]

# So why don't any of these?
df.loc[(df['C2']>5) & filter] #TypeError: ...
df.loc[(df['C2']>5) & (filter)] # TypeError: ...
df.loc[df['C2']>5 & filter] # TypeError: ...

filter2 = lambda adf: adf['C2']>5
df.loc[(filter) & (filter2)] # TypeError: ...
df.loc[(filter) | (filter2)] # TypeError: ...

# Nesting works, but isn't pretty for multiple callables
df.loc[(df['C2']>5)].loc[filter]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...