繁体   English   中英

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

[英]Pandas, how to add Series to DataFrame column, where series index matches a DataFrame column?

我有一个 Pandas DataFrame 和一个系列。 他们的一个样本是:

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的值添加到df中的value列,其中series的索引与dfkey列匹配? 注意不是seriesd不会改变。 对于上面的例子,我想以:

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

您可以简单地使用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

你关心指数吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM