2017-02-18 6 views
1

だから私はこのような何か探してCSVファイルを持っている:私は、例えば、特定のCategoryを含むすべての行を取得したいDataFrame.locが間違った行を返すのはなぜですか?

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

を「ASSAULT」、私はこのような何かをしようとしました:

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

しかし、それは私だけ明らかに適切ではない「非刑事」を含む1行を、提供します。データを取得しようとしたときに何が間違っていますか?

編集:私は問題を自分で見つけ出し、私はタイプミスをしました。

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

が、私は問題を自分で考え出した「ASSAULT」

答えて

0

を含む両方の行を取得していない、と私はタイプミスを作っ判明:

代わりに、ラインは言う必要があります。

代わりに、ラインは言う必要があります:

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

が、私は '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. 
関連する問題