#python #pandas #pivot-table
Вопрос:
Привет, у меня есть данные, как показано ниже
Time qty
2021-07-23 02-06-49 0.02
2021-07-23 02-06-51 0.02
2021-07-23 02-06-53 2
2021-07-23 02-06-53 0.032
2021-07-23 02-06-54 2.842
2021-07-23 02-06-54 0.025
2021-07-23 02-06-55 0.02
2021-07-23 02-06-57 1.742
2021-07-23 02-06-57 0.395
df = pd.pivot_table(df,index=['Time'],values=['qty'],aggfunc=np.sum)
print(df)
результат, как показано ниже
Time qty
2021-07-23 02-06-49 0.02
2021-07-23 02-06-51 0.02
2021-07-23 02-06-53 2.000000000.03200000
2021-07-23 02-06-54 2.842000000.02500000
2021-07-23 02-06-55 0.02
2021-07-23 02-06-57 1.742000000.39500000
Мне нужна сумма стоимости кол-во
Комментарии:
1. Ваш результат странный… Вы можете обновить свой пост с выводом
df.info()
, пожалуйста?
Ответ №1:
Основываясь на выводе, мне кажется, что «кол-во» — это «строковый» тип dtype. Попробуйте заставить его быть «плавающим» и повторите попытку:
df = df.astype({"qty": "float"})
df = pd.pivot_table(df, index=['Time'], values=['qty'], aggfunc=np.sum)
Ответ №2:
Вы также можете использовать groupby
:
>>> df.groupby('Time', as_index=False)['qty'].sum()
Time qty
0 2021-07-23 02-06-49 0.020
1 2021-07-23 02-06-51 0.020
2 2021-07-23 02-06-53 2.032
3 2021-07-23 02-06-54 2.867
4 2021-07-23 02-06-55 0.020
5 2021-07-23 02-06-57 2.137
Комментарии:
1. спасибо, приятель, у меня есть несколько колонок, таких как кол-во, цена, которую я хочу, чтобы сумма кол-во, что я могу сделать…?
2. А остальные столбцы отброшены?
3. Я обновил свой ответ, чтобы вычислить сумму только по
qty
столбцу.4. тем не менее, у меня тот же результат < Кол-во времени 0 2021-07-23 03-03-42 0.32320000 1 2021-07-23 03-03-47 0.65470000 2 2021-07-23 03-03-52 1.532000000.04430000 >