簡體   English   中英

在pivot_table pandas之后丟失值

[英]losing values ​after pivot_table pandas

我有以下數據框:

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),因為在第一個數據幀中只有整數值。

如何解決這個問題,以便列收到列 Qty 的正確總和?

DataFrame.pivot_table默認聚合函數是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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM