Как мне получить оставшиеся данные после использования np.where в Pandas? - PullRequest
0 голосов
/ 03 апреля 2019

Что я хочу (но не работает):

df = np.where((df['cd_0'].values == 1) & (df['cd_1'].values == 1), df, np.nan)

Обратите внимание на df во втором аргументе

np.where(... , df, ...)

Я хочу получить весь оставшийся фрейм данных.

Я просмотрел весь стекопоток для этого конкретного случая, и единственное, что я вижу, вместо этого возвращает определенный столбец фрейма данных.Это работает, но возвращает только определенный столбец.Вместо этого мне нужен весь оставшийся кадр данных:

Работает, но не то, что я хочу:

df = np.where((df['cd_0'].values == 1) & (df['cd_1'].values == 1), df['cd_2'], np.nan)

Это работает именно так, как я хочу, но я не хочу использовать этот метод из-за скорости.

df= df[(df['cd_0'].values == 1) & (df['cd_1'].values == 1)]

1 Ответ

1 голос
/ 03 апреля 2019

Это where от панд

df=df.where((df['cd_0'] == 1) & (df['cd_1'] == 1))

Другой путь - reindex назад или .loc

df[(df['cd_0'] == 1) & (df['cd_1'] == 1)].reindex(df.index)

df.loc[~((df['cd_0'] == 1) & (df['cd_1'] == 1)),:]=np.nan
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...