Как удалить строку по определенному имени / значению строки в пандах - PullRequest
0 голосов
/ 15 октября 2019

Как отбросить строку Name == 30?

Как насчет отбрасывания 2 строк одновременно, скажем Name == 30 и Name == 40?

Name     Date    sales   discount  net_sales 

20     20060331   2.709       NaN      2.709 
30     20060630   6.590       NaN      6.590
40     20060930  10.103       NaN     10.103 
50     20061231  15.915       NaN     15.915 

Спасибо.

Ответы [ 3 ]

0 голосов
/ 15 октября 2019

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

df.drop(df[df.Name.eq(30)].index)

или

df[~df.Name.eq(30)]
0 голосов
/ 15 октября 2019

вы можете использовать индекс строк фильтра, как показано ниже

df.drop(df[df["Name"]==30].index, inplace=True)
df
0 голосов
/ 15 октября 2019

Использование Series.ne

df[df['Name'].ne(30)]

или, если 30 равно str

df[df['Name'].ne('30')]

Выход:

   Name      Date   sales  discount  net_sales
0    20  20060331   2.709       NaN      2.709
2    40  20060930  10.103       NaN     10.103
3    50  20061231  15.915       NaN     15.915

Чтобы сбросить больше 1, вам нужно использовать Series.isin:

df[~df['Name'].isin([20,30])]

   Name      Date   sales  discount  net_sales
2    40  20060930  10.103       NaN     10.103
3    50  20061231  15.915       NaN     15.915

Используйте для удаления столбца 5:

df.loc[:,~df.columns.isin([5])]

или

df.loc[:,df.columns != 5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...