2017-02-18 130 views
1

所以我有一个CSV文件看起来像这样:为什么我的DataFrame.loc返回错误的行?

  IncidntNum Category 
0   150060275  NON-CRIMINAL 
1   150098210   ROBBERY 
2   150098210   ASSAULT 
3   150098213   ASSAULT 

我想获得一个包含所有行的具体Category,例如“突击”,所以我试图做这样的事情:

with open("file.csv", 'r') as f: 
    data = pd.read_csv(f) 
    crimes = data.loc[['Category'] == 'ASSAULT'] 

但它只是让我含“非犯罪”一列,这显然是不对的。试图获取数据时我做错了什么?

编辑:我自己想出了问题,结果我犯了一个错字。

相反,该行应说:

crimes = data.loc[data['Category'] == 'ASSAULT'] 

没有拿到包含“突击”

回答

0

我想通了自己的问题都行,原来我做了一个错字。

相反,该行应说:

crimes = data.loc[data['Category'] == 'ASSAULT'] 

没有拿到包含 '突击' 两行。

1

试试这个: -

df = pandas.read_csv('csvfile.txt', index_col=False, header=0); 
print df[df['Category'] == 'ASSAULT')] #To filter on the basis of single value. 
print df[df['A'].isin(['ASSAULT','ROBBERY'])] ##To filter on the basis of multiple values. 
相关问题