[英]sum aggregate dataframe columns with different Shapes
我尝试使用聚合语法对分组列中的所有值求和
df2 = pd.DataFrame([[1, np.array([2, 5, 3])],
[1, np.array([2, 5, 3])],
[1, np.array([2, 5, 3, 5, 3])]],
columns=['doc_id', 'topic_dist']
当我执行代码以聚合具有不同形状的数组时
def getsumcolumns(dfsource):
grouped = dfsource.groupby('doc_id')
aggregate = list((k, v["topic_dist"].sum()) for k, v in grouped)
df_results = pd.DataFrame(aggregate, columns=['doc_id','topic_dist'])
print(df_results)
return df_results
我有错误信息
operands could not be broadcast together with shapes (3,) (5,)
期望值
doc_id topic_dist
0 1 [6, 15, 9, 5, 3]
有什么想法可以得到这些列的总和吗?
在应用总和之前,您需要将列表Series
拆分为二维数组/数据帧类型
for k, v in df2.groupby('doc_id'):
print(k, v['topic_dist'].apply(pd.Series).sum().to_list(), sep='\t')
输出
1 [6.0, 15.0, 9.0, 5.0, 3.0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.