Example: df = df[df.Number = 1]
I want to filter rows for a specific list of numbers. For example:
1,2,3,4,5,6,7,8,9
I tried
df3 = df[df.Number == "01"or"02"]
Can I use a list after df3 = df[df.Number == __]
?
Example: df = df[df.Number = 1]
I want to filter rows for a specific list of numbers. For example:
1,2,3,4,5,6,7,8,9
I tried
df3 = df[df.Number == "01"or"02"]
Can I use a list after df3 = df[df.Number == __]
?
Your question is not clear and looks incoherent, but I suppose you should use a for
loop, e.g.:
df3 = [df[index] for index in (2, 3)]
This is equivalent to:
df3 = [df[2], df[3]]
Yes, you can. Filter df which is contains 1
or 2
:
df[(df.Number == 1) | (df.Number == 2)] # output : 1, 2
Filter df which is not contains 1
and 2
:
df[~((df.Number == 1) | (df.Number == 2))] # output : 3, 4, 5, 6, 7, 8, 9
isin
is an efficient method of filtering according to numbers in a list:
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])])
returns:
Number
1 2
2 3
This is what the .isin() method is for.
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
If you want to exclude the selection, you just need to invert the selection:
df[~df.Number.isin([1,2])]
Number
0 0
1 0
4 0