如何检查 Pandas Dataframe 的真假 - Python
How to check Pandas Dataframe for True or False - Python
如何检查数据框中的每个 pandas 行以查看该行是 True 还是 False?这里我想打印,'Yes' if df['check'] is True.
import pandas as pd
import numpy as np
num = [10,20,30,40,30,20,30,40,50,60,70,80,90]
ind = [0,1,2,3,4,5,6,7,8,9,10,11,12]
df = pd.DataFrame({'Price': num}, index = ind)
df['check'] = (df['Price'] > 30)
if df['check'] == True:
print('Yes')
不确定为什么要这样做...但是使用 itertuples
for row in df.itertuples():
if row.check:
print('Yes')
Yes
Yes
Yes
Yes
Yes
Yes
Yes
您可以将您的价值观映射到 map
df.check.map({True: 'Yes', False: ''})
0
1
2
3 Yes
4
5
6
7 Yes
8 Yes
9 Yes
10 Yes
11 Yes
12 Yes
Name: check, dtype: object
甚至assign
它回到一列
df.assign(mapped=df.check.map({True: 'Yes', False: ''}))
Price check mapped
0 10 False
1 20 False
2 30 False
3 40 True Yes
4 30 False
5 20 False
6 30 False
7 40 True Yes
8 50 True Yes
9 60 True Yes
10 70 True Yes
11 80 True Yes
12 90 True Yes
您可以使用 pd.DataFrame.where
,它在第一个参数的计算结果为 True
时保留值,并在 False
时用第二个参数填充。如果未传递第二个参数,则改为放置 np.nan
。
df.Price.where(df.check, -99)
0 -99
1 -99
2 -99
3 40
4 -99
5 -99
6 -99
7 40
8 50
9 60
10 70
11 80
12 90
Name: Price, dtype: int64
姊妹方法是mask
,它的作用正好相反。保留第一个参数为 False
的位置。这是一个等价的语句
df.Price.mask(~df.check, -99)
0 -99
1 -99
2 -99
3 40
4 -99
5 -99
6 -99
7 40
8 50
9 60
10 70
11 80
12 90
Name: Price, dtype: int64
如何检查数据框中的每个 pandas 行以查看该行是 True 还是 False?这里我想打印,'Yes' if df['check'] is True.
import pandas as pd
import numpy as np
num = [10,20,30,40,30,20,30,40,50,60,70,80,90]
ind = [0,1,2,3,4,5,6,7,8,9,10,11,12]
df = pd.DataFrame({'Price': num}, index = ind)
df['check'] = (df['Price'] > 30)
if df['check'] == True:
print('Yes')
不确定为什么要这样做...但是使用 itertuples
for row in df.itertuples():
if row.check:
print('Yes')
Yes
Yes
Yes
Yes
Yes
Yes
Yes
您可以将您的价值观映射到 map
df.check.map({True: 'Yes', False: ''})
0
1
2
3 Yes
4
5
6
7 Yes
8 Yes
9 Yes
10 Yes
11 Yes
12 Yes
Name: check, dtype: object
甚至assign
它回到一列
df.assign(mapped=df.check.map({True: 'Yes', False: ''}))
Price check mapped
0 10 False
1 20 False
2 30 False
3 40 True Yes
4 30 False
5 20 False
6 30 False
7 40 True Yes
8 50 True Yes
9 60 True Yes
10 70 True Yes
11 80 True Yes
12 90 True Yes
您可以使用 pd.DataFrame.where
,它在第一个参数的计算结果为 True
时保留值,并在 False
时用第二个参数填充。如果未传递第二个参数,则改为放置 np.nan
。
df.Price.where(df.check, -99)
0 -99
1 -99
2 -99
3 40
4 -99
5 -99
6 -99
7 40
8 50
9 60
10 70
11 80
12 90
Name: Price, dtype: int64
姊妹方法是mask
,它的作用正好相反。保留第一个参数为 False
的位置。这是一个等价的语句
df.Price.mask(~df.check, -99)
0 -99
1 -99
2 -99
3 40
4 -99
5 -99
6 -99
7 40
8 50
9 60
10 70
11 80
12 90
Name: Price, dtype: int64