создать новые фреймы данных со строками из другого фрейма данных с указанными c значениями столбцов - PullRequest
0 голосов
/ 01 августа 2020

Я хотел бы создать новый pandas фрейм данных из существующего фрейма данных только с строками, в которых значения столбцов c больше x. Например:

df =   A B C
     0 1 0 2
     1 2 1 3
     2 3 3 0
     3 4 2 5

Я хочу создать new_df только с теми строками, где значения столбцов B и C больше 0, что означает

new_df =  A B C
        0 2 1 3
        1 4 2 5

Я использовал команду :

new_df = df.loc[df['B'] > 0 & df['C'] > 0]

но не работает

Ответы [ 2 ]

3 голосов
/ 01 августа 2020

Вы почти получили это. Используйте круглые скобки для заключения условий:

new_df = df.loc[(df['B'] > 0) & (df['C'] > 0)]

Бинарные операторы & и | имеют приоритет над равенствами / неравенствами. То, что вы делали, было эквивалентно:

new_df = df.loc[(df['B'] > (0 & df['C'])) > 0]
1 голос
/ 01 августа 2020

Вы можете использовать это:

df[(df[['B', 'C']] > 0).all(axis=1)]

Вывод:

   A  B  C
1  2  1  3
3  4  2  5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...