繁体   English   中英

汇总具有不同形状的数据框列

[英]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.

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