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

时间:2016-03-24 19:15:02

标签: python pandas

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

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

有更优雅的方式做事吗?

1 个答案:

答案 0 :(得分:0)

我不认为它非常优雅,但它会为您节省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