gpt4 book ai didi

python - get() 用于 Pandas 系列中的默认值,使用位置

转载 作者:行者123 更新时间:2023-11-28 19:12:31 24 4
gpt4 key购买 nike

在按位置访问行时,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() (如 .loc.iloc)?

最佳答案

像这样的东西会被认为更干净吗:

df['new_index'] = np.arange(df.shape[0])
df = df.set_index('new_index')

df['col1'].get(2, 'the_default_value')

如果需要原始索引,那么,使用多索引可能会有用

df['new_index'] = np.arange(df.shape[0])
df = df.set_index('new_index', append=True)

df['col1'].get((pd.IndexSlice[:], 2), 'the_default_value')

关于python - get() 用于 Pandas 系列中的默认值,使用位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38262232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com