Сводные значения Панд объединяются

#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 >