Pandas如何将Series添加到DataFrame列中,其中Series的索引与DataFrame列匹配?

3

我有一个pandas数据帧和一个系列。它们的样例是:

b = [
        {'key': 'c', 'value': 10},
        {'key': 'a', 'value': 5},
        {'key': 'b', 'value': 3},
        {'key': 'd', 'value': 99}
]
df = pd.DataFrame(b)
a = {'a': 1, 'b': 2, 'c': 3} 
series = pd.Series(a)

如何将 series 的值加到 dfvalue 列中,其中 series 的索引与 dfkey 列匹配?请注意,不在 series 中的 key d 不会改变。针对上述示例,我想要得到以下结果:

result_data = [
        {'key': 'c', 'value': 13},
        {'key': 'a', 'value': 6},
        {'key': 'b', 'value': 5},
        {'key': 'd', 'value': 99}
]
result_df = pd.DataFrame(result_data)
2个回答

3
你可以简单地将a用作查找字典:
df['sum'] = df.apply(lambda x: x['value'] + a.get(x['key'], 0), axis=1)

print(df[['key', 'sum']])

  key  sum
0   c   13
1   a    6
2   b    5
3   d   99

0

你关心这个索引吗?

df = df.set_index('key')
df.add(series, axis=0).fillna(df)

   value
a    6.0
b    5.0
c   13.0
d   99.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接