如何检查数据框中的每个熊猫行,以查看该行是True还是False?在这里我要打印,如果df ['check']为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
关于python - 如何检查Pandas Dataframe的正确或错误-Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43290762/