【发布时间】:2018-09-01 02:13:41
【问题描述】:
我想根据每个特定行中的其他值为填充了 True 或 False 的 Pandas 数据框创建一个新列。我解决此任务的方法是在数据框中的每一行中应用一个检查布尔条件的函数,并用 True 或 False 填充新列。
这是数据框:
l={'DayTime':['2018-03-01','2018-03-02','2018-03-03'],'Pressure':
[9,10.5,10.5], 'Feed':[9,10.5,11], 'Temp':[9,10.5,11]}
df1=pd.DataFrame(l)
这是我写的函数:
def ops_on(row):
return row[('Feed' > 10)
& ('Pressure' > 10)
& ('Temp' > 10)
]
函数 ops_on 用于创建新列 ['ops_on']:
df1['ops_on'] = df1.apply(ops_on, axis='columns')
很遗憾,我收到以下错误消息:
TypeError: ("'>' not supported between 'str' and 'int'", 'occured at index 0')
感谢您的帮助。
【问题讨论】:
-
你的函数没有像你想象的那样工作。它将字符串
'Feed'与整数10进行比较(等等)。在这种情况下,不建议使用apply。请参阅下面的 jpp 解决方案。