Как в Pandas языка Python заполнить пустую колонку и не считать ее сумму?
Решаю задачу, в которой есть столбец со значениями NaN, которые надо заполнить по количеству строк, начиная с единицы:
Вот так:
j П, k=1 П, k=2
0 1 10.0 40.0
1 2 20.0 50.0
2 3 30.0 60.0
Сумма NaN 60.0 150.0
Пробую это сделать двумя вариантами: первый отрабатывает некорректно - дает все тройки вместо 1,2,3, второй вариант вовсе не работает.
Кроме того, первый вариант считает сумму в этой колонке, а мне она там не нужна. Как быть?
Код:
import numpy as np
import pandas as pd
m=4
df1 = pd.DataFrame(data = {'j': [np.nan, np.nan, np.nan], 'П, k=1': [10, 20, 30], 'П, k=2': [40, 50, 60]})
df1.loc['Сумма'] = df1.sum()
# ПЕРВЫЙ ВАРИАНТ:
# for j in range(1, m):
# df1['j'] = j
# ВТОРОЙ ВАРИАНТ:
bc = [x for x in range(1, m)]
print(bc)
df1['j'] = bc
print(df1)
Ответы (1 шт):
Автор решения: Алексей Казанцев
→ Ссылка
Тут по соседству предложен такой способ решения: берем второй вариант и получаем следующий код
import numpy as np
import pandas as pd
m=4
df1 = pd.DataFrame(data = {'j': [np.nan, np.nan, np.nan], 'П, k=1': [10, 20, 30], 'П, k=2': [40, 50, 60]})
df1.loc['Сумма'] = df1.sum()
bc = [x for x in range(1, m)]
df1.loc[df1.index[:-1], 'j'] = bc # присвоение реализовано таким образом
print(df1)