сумма установленных значений в кадре данных - PullRequest
2 голосов
/ 28 мая 2019

Я пытаюсь суммировать столбец внутри 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, а не с суммой.

1 Ответ

2 голосов
/ 28 мая 2019

Можно попробовать использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...