我已成功使用.loc
来分配过滤数据集的列,但现在我需要使用两个过滤器过滤数据集并获得以下错误。我试图使用&
运算符,就像过滤一样。
TypeError: cannot compare a dtyped [object] array with a scalar of type [bool]
代码:
import pandas as pd
df = pd.DataFrame(data=[['Arlington', 'MA'],
['Arlington', 'TX'],
['Dallas', 'TX']],
columns=['City', 'State'])
df.loc[(df['State'] == 'TX' & df['City'] == 'Arlington'), 'New Column'] = 10
print df
期望的输出:
City State New Column
0 Arlington MA NAN
1 Arlington TX 10
2 Dallas TX NaN
答案 0 :(得分:3)
您需要将比较括号为(df['State'] == 'TX') & (df['City'] == 'Arlington')
。在Python中,像&
这样的按位运算符比==
之类的比较运算符具有更高的优先级。