使用.loc在Pandas中进行多选

时间:2016-10-24 00:39:26

标签: python python-2.7 pandas

我已成功使用.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

1 个答案:

答案 0 :(得分:3)

您需要将比较括号为(df['State'] == 'TX') & (df['City'] == 'Arlington')。在Python中,像&这样的按位运算符比==之类的比较运算符具有更高的优先级。