pandas 如何返回没有特定值的行?

mm9b1k5b  于 2023-04-28  发布在  其他
关注(0)|答案(4)|浏览(170)

示例:df = df[df.Number = 1]
我想筛选特定数字列表的行。例如:

1,2,3,4,5,6,7,8,9

我尽力了

df3 = df[df.Number == "01"or"02"]

我可以在df3 = df[df.Number == __]之后使用列表吗?

xhv8bpkk

xhv8bpkk1#

你的问题不清楚,看起来不连贯,但我认为你应该使用for循环,例如:

df3 = [df[index] for index in (2, 3)]

这相当于:

df3 = [df[2], df[3]]
42fyovps

42fyovps2#

可以。过滤df包含12

df[(df.Number == 1) | (df.Number == 2)] # output : 1, 2

筛选不包含12的df:

df[~((df.Number == 1) | (df.Number == 2))] # output : 3, 4, 5, 6, 7, 8, 9
nsc4cvqm

nsc4cvqm3#

isin是根据列表中的数字进行过滤的有效方法:

import pandas as pd
df = df = pd.DataFrame(data={"Number":[1,2,3,4,5,6,7,8,9]})
print(df[df.Number.isin([2,3])])

返回:

Number
1       2
2       3
vom3gejh

vom3gejh4#

这就是.isin()方法的作用。

df = pd.DataFrame(np.random.randint(0, 5, (5)), columns=['Number'])
df
Number
0       0
1       0
2       2
3       2
4       0
df[df.Number.isin([1,2])]
Number
2       2
3       2

如果要排除选区,只需反转选区:

df[~df.Number.isin([1,2])]
Number
0       0
1       0
4       0

相关问题