2017-02-18 37 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. 
相關問題