1. ホーム
  2. python

[解決済み] Pandasシリーズの最後の要素にアクセスする方法は?

2022-02-18 08:05:43

質問内容

次のようなデータフレームを考えてみよう。

import pandas as pd

d = {'col1': [1, 2, 3], 'col2': [3, 4, 5]}
df=pd.DataFrame(data=d)

pandas seriesの最初の要素にアクセスしたい場合 df['col1'] というように、単純に df['col1'][0] .

しかし、どのようにすれば 最後の 要素を使用することはできますか? 試してみたところ df['col1'][-1] というメッセージが表示され、以下のようなエラーが返されます。

KeyError: -1L

のようなものが行けるのは知っています。 df['col1'][len(df)-1] が、なぜここではリバースインデックスが不可能なのでしょうか?

どうすればいい?

最後の値を選択するために Series.iloc または Series.iat なぜなら df['col1'] 戻る Series :

print (df['col1'].iloc[-1])
3
print (df['col1'].iat[-1])
3

またはSeriesをnumpy配列に変換し、最後に選択する。

print (df['col1'].values[-1])
3

または DataFrame.iloc または DataFrame.iat - によるカラムの位置は必要ですが Index.get_loc :

print (df.iloc[-1, df.columns.get_loc('col1')])
3
print (df.iat[-1, df.columns.get_loc('col1')])
3

または、インデックスの最後の値(重複していない必要があります)を使用して、次の方法で選択することができます。 DataFrame.loc :

print (df.loc[df.index[-1], 'col1'])
3