pandasデータフレームから特定の行を系列として取得する
フィルタリングされた特定の行をシリーズとして取得するには?
データフレームの例
>>> df = pd.DataFrame({'date': [20130101, 20130101, 20130102], 'location': ['a', 'a', 'c']})
>>> df
date location
0 20130101 a
1 20130101 a
2 20130102 c
locationが
c` である行を選択する必要があります。
**試してみました。
row = df[df["location"] == "c"].head(1) # gives a dataframe
row = df.ix[df["location"] == "c"] # also gives a dataframe with single row
いずれの場合も、行をシリーズにすることはできません。
43
2
squeeze`]1関数を使用して、データフレームから次元を1つ削除する:
DataFrame.squeeze
メソッドはread_csv
関数のsqueeze
引数をTrue
に設定したときと同じように動作します: 結果のデータフレームが 1-len データフレームである場合、つまり 1 つの次元 (列または行) しかない場合、オブジェクトは小さい次元のオブジェクトに縮小されます。あなたの場合、DataFrameからSeriesオブジェクトを取得します。同じロジックが、Panel を DataFrame に絞り込む場合にも適用されます。
あなたのコードでは、squeeze が明示されており、オブジェクトの寸法をより小さい寸法に投影することができるため、手元のオブジェクトを "castdown"する意図が明確に示されています。
データフレームに複数の列や行がある場合、squeeze は何の効果も持ちません。
整数のインデックス(iloc()関数)で最初の行を取るだけです: