如何检查数据框中的每个熊猫行,以查看该行是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/

10-11 21:50