Python 如何使用pd.Series中的值更新包含列表的单元格?

Python 如何使用pd.Series中的值更新包含列表的单元格?,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据框: df = pd.DataFrame({'cols': ['a', 'b', 'c'], 'vals': [[1,2], [3,4], [5,6]]}) series = pd.Series([3,5]) df OUT: cols vals 0 a [1, 2] 1 b [3, 4] 2 c [5, 6] series OUT: 0 3 1 5 我希望得到以下结果: cols vals 0 a [1, 2, 3

我有以下数据框:

df = pd.DataFrame({'cols': ['a', 'b', 'c'], 'vals': [[1,2], [3,4], [5,6]]})
series = pd.Series([3,5])
df
OUT:
    cols    vals
0   a   [1, 2]
1   b   [3, 4]
2   c   [5, 6]

series
OUT:
0    3
1    5
我希望得到以下结果:


cols    vals
0   a   [1, 2, 3]
1   b   [3, 4, 5]
2   c   [5, 6]

如何在不使用itterrows的情况下实现这一点?

您可以使用列表理解并将切片分配回VAL。这假设索引是正常范围:


您可以使用列表理解和切片分配回VAL。假设索引为正常范围:

交替地

交替地

良好的旧+=索引对齐:

df.loc[series.index, 'vals'] += pd.Series([[i] for i in series], index=series.index)
良好的旧+=索引对齐:

df.loc[series.index, 'vals'] += pd.Series([[i] for i in series], index=series.index)

没有7号?是的,没有7号。我只想更新常用索引sso series=pd。series[3,5,7]错误?抱歉,我没有注意到。我刚刚编辑了这是7号吗?是的,没有7号。我只想更新常用索引sso series=pd。series[3,5,7]错误?抱歉,我没有注意到。我刚刚编辑了这个,与我的答案类似,如果序列的索引不在df.index中,但更容易修复,则可能会给出额外的值。@Quanghaang你是对的,链接一个reindex或.loc[df.index]应该修复它,然后:df['vals'].explode.appendseries.groupbylevel=0.aggrest.loc[df.index]谢谢,与我的答案类似,如果序列的索引不在df.index中,但更容易修复,则可能会提供额外的索引。@Quanghaang您是对的,链接一个reindex或.loc[df.index]应该修复它,然后:df['vals'].explode.appendseries.groupbylevel=0.aggrest.loc[df.index]谢谢:
  cols       vals
0    a  [1, 2, 3]
1    b  [3, 4, 5]
2    c     [5, 6]
df.loc[series.index, 'vals'] += pd.Series([[i] for i in series], index=series.index)