在pivot_table pandas之后丢失值?

Leo*_*ues 5 python pivot-table pandas

我有以下数据框:

\n\n
df.between_time('09:00', '09:05').head(10)\n\n                     Qtd   Pre\xc3\xa7o  N\xc3\xbam            CC           CV        Agr\nHora                                                                       \n2020-01-19 09:05:00    5  4073.5  734    1618-Ideal    308-Clear   Vendedor\n2020-01-19 09:05:00    5  4073.5  733    1618-Ideal   120-Genial   Vendedor\n2020-01-19 09:05:00    5  4073.5  732    120-Genial   1618-Ideal   Vendedor\n2020-01-19 09:05:00   10  4074.0  731  045-C Suisse  127-Tullett   Vendedor\n2020-01-19 09:05:00    5  4074.0  730    120-Genial  127-Tullett   Vendedor\n2020-01-19 09:05:00    5  4074.0  729  072-Bradesco  127-Tullett   Vendedor\n2020-01-19 09:05:00    5  4074.0  728       008-UBS       003-XP   Vendedor\n2020-01-19 09:04:59   20  4074.5  727     262-Mirae      122-BGC  Comprador\n2020-01-19 09:04:59    5  4074.5  726  072-Bradesco      122-BGC   Vendedor\n2020-01-19 09:04:59   35  4074.5  725       008-UBS      122-BGC   Vendedor\n
Run Code Online (Sandbox Code Playgroud)\n\n

当尝试旋转表时,值 \xe2\x80\x8b\xe2\x80\x8bare 从 int 更改为 float 并且结果值与实现的值不匹配:

\n\n
df.between_time('09:00', '09:05').head(10).pivot_table(index = 'Pre\xc3\xa7o', columns = 'Agr', values = 'Qtd')\n\nAgr     Comprador  Vendedor\nPre\xc3\xa7o                      \n4073.5        NaN      5.00\n4074.0        NaN      6.25\n4074.5       20.0     20.00\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

如何解决此问题,以便各列收到正确的列数量总和?

\n

jez*_*ael 4

默认聚合函数是DataFrame.pivot_table,np.mean所以有必要添加aggfunc=\'sum\':

\n\n
df1 = (df.between_time(\'09:00\', \'09:05\')\n         .head(10)\n         .pivot_table(index = \'Pre\xc3\xa7o\', columns = \'Agr\', values = \'Qtd\', aggfunc=\'sum\'))\n
Run Code Online (Sandbox Code Playgroud)\n\n

细节:

\n\n
print (df.pivot_table(index = u\'Preco\', columns = \'Agr\', values = \'Qtd\', aggfunc=\'sum\'))\nAgr     Comprador  Vendedor\nPre\xc3\xa7o                      \n4073.5        NaN      15.0\n4074.0        NaN      25.0\n4074.5       20.0      40.0\n
Run Code Online (Sandbox Code Playgroud)\n