在pivot_表之后丢失值

2024-06-26 12:42:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

df.between_time('09:00', '09:05').head(10)

                     Qtd   Preço  Núm            CC           CV        Agr
Hora                                                                       
2020-01-19 09:05:00    5  4073.5  734    1618-Ideal    308-Clear   Vendedor
2020-01-19 09:05:00    5  4073.5  733    1618-Ideal   120-Genial   Vendedor
2020-01-19 09:05:00    5  4073.5  732    120-Genial   1618-Ideal   Vendedor
2020-01-19 09:05:00   10  4074.0  731  045-C Suisse  127-Tullett   Vendedor
2020-01-19 09:05:00    5  4074.0  730    120-Genial  127-Tullett   Vendedor
2020-01-19 09:05:00    5  4074.0  729  072-Bradesco  127-Tullett   Vendedor
2020-01-19 09:05:00    5  4074.0  728       008-UBS       003-XP   Vendedor
2020-01-19 09:04:59   20  4074.5  727     262-Mirae      122-BGC  Comprador
2020-01-19 09:04:59    5  4074.5  726  072-Bradesco      122-BGC   Vendedor
2020-01-19 09:04:59   35  4074.5  725       008-UBS      122-BGC   Vendedor

当尝试透视表时,值​​从int更改为float,结果值与实现的值不匹配:

df.between_time('09:00', '09:05').head(10).pivot_table(index = 'Preço', columns = 'Agr', values = 'Qtd')

Agr     Comprador  Vendedor
Preço                      
4073.5        NaN      5.00
4074.0        NaN      6.25
4074.5       20.0     20.00

卖方列收到一个不可能的值(6.25),因为在第一个数据帧中只有整数值

如何解决此问题,使列接收正确的列数量总和


Tags: 数据dftimebetweenpreheadbgcideal
1条回答
网友
1楼 · 发布于 2024-06-26 12:42:08

^{}中的默认聚合函数为np.mean,因此需要添加aggfunc='sum'

df1 = (df.between_time('09:00', '09:05')
         .head(10)
         .pivot_table(index = 'Preço', columns = 'Agr', values = 'Qtd', aggfunc='sum'))

详细信息

print (df.pivot_table(index = u'Preco', columns = 'Agr', values = 'Qtd', aggfunc='sum'))
Agr     Comprador  Vendedor
Preço                      
4073.5        NaN      15.0
4074.0        NaN      25.0
4074.5       20.0      40.0

相关问题 更多 >