[英]Applying an IF condition in Pandas DataFrame
我正在使用 2 个可选代码在我的 df 中创建一个新列,并包含所需的值:
选项1
cov19.loc[cov19['cases'] <= 10, 'estrats'] = 'Very Low'
cov19.loc[cov19['cases'] > 10 and <= 50, 'estrats'] = 'Low'
cov19.loc[cov19['cases'] > 50 and <= 100, 'estrats'] = 'Medium'
cov19.loc[cov19['cases'] > 100 and <= 1000, 'estrats'] = 'High'
cov19.loc[cov19['cases'] > 1000, 'estrats'] = 'Very High'
返回错误 1:
cov19.loc[cov19['set_of_numbers'] > 10 and <= 50, 'estrats'] = 'Low'
^
SyntaxError: invalid syntax
可选代码 2
cov19.loc[cov19['cases'] <= 10, 'estrats'] = 'Very Low'
cov19.loc[cov19['cases'] > 10 and cov19['cases'] <= 50, 'estrats'] = 'Low'
cov19.loc[cov19['cases'] > 50 and cov19['cases'] <= 100, 'estrats'] = 'Medium'
cov19.loc[cov19['cases'] > 100 and cov19['cases']<= 1000, 'estrats'] = 'High'
cov19.loc[cov19['cases'] > 1000, 'estrats'] = 'Very High'
返回错误 2
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
这就是你想要的:
cov19.loc[(cov19['cases'] > 10) & (cov19['cases'] <= 50), 'estrats'] = 'Low'
&
在这里进行元素与操作,并使用括号将操作数包装到它。
另外,关于&
vs and
的更多说明:
and
是 boolean 操作,其中&
是按位的。 因此,当您想要计算对象的各个组件之间的 AND 运算时,请使用&
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.