我尝试比较dataframe中的两列(字符串类型) :
if((MODEL_STANDARD_df['FT']== "4") and (MODEL_STANDARD_df['FT_CODE'] == ' ')):
MODEL_STANDARD_df['ft2'] = "DIESEL"
但我得到了这个错误:
Error in Python process: At line 18: <type 'exceptions.ValueError'>:
The truth value of a Series is ambiguous. Use a.empty, a.bool(),
a.item(), a.any() or a.all(). More info about this error
有没有办法解决这个问题
坦斯克
MODEL_STANDARD_df['FT']== "4"
和MODEL_STANDARD_df['FT_CODE'] == ' '
的返回值是布尔级数,不能在Series
上使用and
。您可以使用布尔索引,如:以下面的dataframe为例
(MODEL_STANDARD_df['FT']== "4")
返回MODEL_STANDARD_df['FT_CODE'] == ' '
返回&
与and
具有相同的逻辑,这意味着如果全部为真,则为真,因此两个布尔级数的&
为Boolean indexing表示只选择真正的行
您可以在数据帧中使用apply函数。见下例:
`
您必须从序列中提取值,以创建一个布尔掩码,该掩码指示使用 numpy的
logical_and
方法:相关问题 更多 >
编程相关推荐