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)