首页 > 解决方案 > 汇总数据框中的设置值

问题描述

我试图对作为一组 int 的 dataFrame 中的列求和。

像:['xxxx',{1,2,3}] 我需要 ['xxxx',6]

谢谢你的帮助。


 for index,row in df_clusters.iterrows():
        if isinstance(row['sum_coefs'],set):
            row.loc['sum_coefs']=sum(row['sum_coefs'])

我在输出中得到了一个未更改的 Dataframe,其中我的 sum_coefs 列中有一个集合,而不是总和。

标签: pythonpandasdataframe

解决方案


可以尝试使用Series.apply

# Setup    
df_clusters = pd.DataFrame(['xxxx',set([1,2,3])], columns=['sum_coefs'])

def sum_sets(val):
    if isinstance(val, set):
        return sum(val)
    return val

df_clusters['sum_coefs'] = df_clusters['sum_coefs'].apply(sum_sets)

[出去]

0    xxxx
1       6
dtype: object

或者,使用内联lambda函数来实现相同的结果:

df_clusters['sum_coefs'] = df_clusters['sum_coefs'].apply(lambda x: sum(x) if isinstance(x, set) else x)

推荐阅读