位置によって行にアクセスするときにPandasにデフォルト値を取得する方法はありますか?私は.get()
関数を認識していますが、これはインデックスで検索するときに機能します。Pandasシリーズのデフォルト値のget()を使用して位置
以下は私がしたいことです。データフレーム:
In [24]: df
Out[24]:
col1
idx
20 A
21 B
22 C
23 D
24 E
は、インデックスによる検索とデフォルト値を取得するには、正常に動作します:
In [25]: df['col1'].get(23, 'the_default_value')
Out[25]: 'D'
In [26]: df['col1'].get(28, 'the_default_value')
Out[26]: 'the_default_value'
しかし、位置によって検索する同等の方法があるように表示されません。 .iloc()
を使用できますが、その行が存在しない場合はデフォルト値を取得するのに役立ちません。例えば。
In [57]: df['col1'].iloc[2]
Out[57]: 'C'
In [58]: df['col1'].iloc[6]
...
IndexError: single positional indexer is out-of-bounds
私はtry...except
を使用してそれを設定、または値が存在するかどうか、それを行うためのクリーンな方法がある場合.iget()
のように、事前に確認することができます(.iloc
対.loc
など)?このような
「0」から始まるようにインデックスをリセットするだけです。 – EdChum
はい、可能です。しかし、実際のインデックスが必要な場合は、単にインデックスをリセットすることを意味します(用途の1つがループ内にあります)。 – vk1011