.sum()
применяется к DF строк
Без изменения оригинальных вопросов и ответов ... Вот обновленный ответ на ваш исправленный вопрос:
Проблема в том, что вам нужно преобразовать строки в целые числа. Это просто делает его двухступенчатым процессом. Я покажу все шаги, чтобы было ясно:
In [83]: str_lst =[[ '7', '3', '2', '-1', '5', '8', '0'],
[ '6', '8', '4', '0', '8', '7', '6'],
[ '6', '1', '2', '8', '6', '-1', '2'],
[ '0', '-1', '3', '5', '1', '3', '7'],
[ '6', '5', '2', '8', '4', '2', '3'],
[ '4', '-1', '-1', '3', '2', '3', '-1'],
[ '8', '6', '6', '0', '8', '0', '0'],
['-1', '3', '3', '0', '4', '2', '4'],
[ '2', '1', '2', '7', '0', '8', '5'],
[ '3', '8', '1', '0', '8', '1', '8']]
In [85]: df = pd.DataFrame(str_lst, columns=['1day', '2day',
'3day', '4day', '5day', '6day', '7day'])
In [93]: df = df.apply(pd.to_numeric)
In [94]: df['Totals'] = df.sum(axis =1)
Если вы сделаете сумму до pd.to_numeric
, это будет суммирование строк. Если вы сделаете сумму после pd.to_numeric
, это будет суммирование целых.
Оригинальный ответ
После того, как вы создали свой DF. Попробуйте:
df['Totals'] = df.sum(axis=1)
Это добавит столбец в дальнем правом углу с суммой строк.
Пример
In [63]: df = pd.DataFrame(np.random.randint(-1,9,size=(10, 7)),
columns=['1day', '2day', '3day', '4day',
'5day', '6day', '7day'])
In [64]: df
Out[64]:
1day 2day 3day 4day 5day 6day 7day
0 0 0 7 -1 2 2 -1
1 0 3 3 2 -1 3 6
2 0 8 0 -1 8 -1 1
3 3 8 -1 2 6 3 8
4 5 0 1 8 8 -1 3
5 7 8 1 4 8 1 8
6 5 7 5 -1 7 -1 1
7 6 3 2 2 8 1 5
8 3 7 3 3 3 -1 1
9 2 -1 8 1 1 0 5
In [65]: df['Totals'] = df.sum(axis=1)
In [66]: df
Out[66]:
1day 2day 3day 4day 5day 6day 7day Totals
0 0 0 7 -1 2 2 -1 9
1 0 3 3 2 -1 3 6 16
2 0 8 0 -1 8 -1 1 15
3 3 8 -1 2 6 3 8 29
4 5 0 1 8 8 -1 3 24
5 7 8 1 4 8 1 8 37
6 5 7 5 -1 7 -1 1 23
7 6 3 2 2 8 1 5 27
8 3 7 3 3 3 -1 1 19
9 2 -1 8 1 1 0 5 16