суммировать список в каждой строке данных - PullRequest
1 голос
/ 20 сентября 2019

Я хочу суммировать «список» в каждой строке в панде.Как мне это сделать?

row   list
(1)     [1,2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
(2)     [2, 4, 0.0, 0.0, 0.0, 0.0, 0.0]
(3)     [7, 0.0, 0.0, 0.0, 1, 0.0, 0.0]
(4)     [2, 0.0, 9, 0.0, 0.0, 0.0, 0.0, 0.0]
(5)     [3, 4, 5, 3, 0.0, 0]

Мне бы хотелось, чтобы вывод был:

row   list
(1)     3
(2)     6
(3)     8
(4)     2
(5)     15

Я пробовал много dataframe.sum(),, они просто не будут работать.

Например:

  1. df['list'].sum(axis=1)
  2. df['list'].sum()

Результаты:

  1. ValueError: Нет оси с именем 1 для объектатип

  2. даст мне сумму из пяти строк списков значений в один список.

Ответы [ 3 ]

0 голосов
/ 20 сентября 2019

Попробуйте следующий код:

#Total sum per row:
df.loc[:,'Total'] = df.sum(axis=1)

/11170753/kak-sozdat-stroku-summy-i-stolbets-summy-v-pandah

0 голосов
/ 20 сентября 2019

Вы можете использовать Series.apply с приведением к целым числам по Series.astype:

df['list'] = df['list'].apply(sum).astype(int)
print (df)
   row  list
0  (1)     3
1  (2)     6
2  (3)     8
3  (4)    11
4  (5)    15
0 голосов
/ 20 сентября 2019

Вы можете использовать следующее:

df['list'] = df['list'].apply(lambda x: sum(x))

Если вы хотите получить int, вы должны разыграть сумму:

df['list'] = df['list'].apply(lambda x: int(sum(x)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...