Leo*_*ues 5 python pivot-table pandas
我有以下数据框:
\n\ndf.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\nRun Code Online (Sandbox Code Playgroud)\n\n当尝试旋转表时,值 \xe2\x80\x8b\xe2\x80\x8bare 从 int 更改为 float 并且结果值与实现的值不匹配:
\n\ndf.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\nRun Code Online (Sandbox Code Playgroud)\n\n卖家列收到了一个不可能的值(6.25),因为在第一个数据帧中只有整数值。
\n\n如何解决此问题,以便各列收到正确的列数量总和?
\n默认聚合函数是DataFrame.pivot_table,np.mean所以有必要添加aggfunc=\'sum\':
df1 = (df.between_time(\'09:00\', \'09:05\')\n .head(10)\n .pivot_table(index = \'Pre\xc3\xa7o\', columns = \'Agr\', values = \'Qtd\', aggfunc=\'sum\'))\nRun Code Online (Sandbox Code Playgroud)\n\n细节:
\n\nprint (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\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |