Pandas:更优雅的方式来检索行和设置值,如果存在?

2024-09-28 13:25:22 发布

您现在位置:Python中文网/ 问答频道 /正文

使用熊猫,我发现自己写了很多:

try:
    a = df.loc('A81001')
    a['somecol'] = 'someval'
except KeyError:
    pass

有没有更优雅的做事方式?你知道吗


Tags: df方式passloctrykeyerrorexceptsomecol
1条回答
网友
1楼 · 发布于 2024-09-28 13:25:22

我不认为它很优雅,但它会为您节省try/except

考虑以下几点:

df = pd.DataFrame({'a': range(4), 'b': range(1, 5)})
df.b.values[df.a.values == 3] = 2
df.b.values[df.a.values == 30] = 3
>>> df
    a   b
0   0   1
1   1   2
2   2   3
3   3   2

所以请注意

df.b.values[df.a.values == 30] = 3

是不可能的


注意,对于索引,这是相同的想法

df = pd.DataFrame({'a': range(4), 'b': range(1, 5)}).set_index('a')
df.b[df.index == 3] = 29
df.b[df.index == 30] = 3

相关问题 更多 >

    热门问题