如何按熊猫中的特定行名称/值删除行

时间:2019-10-15 03:46:28

标签: python pandas

如何删除行Name == 30

如何同时删除两行,例如Name == 30Name == 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 :(得分:0)

使用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]

答案 1 :(得分:0)

您可以使用

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

df[~df.Name.eq(30)]

答案 2 :(得分:0)

您可以使用如下所示的过滤行的索引

df.drop(df[df["Name"]==30].index, inplace=True)
df