我觉得这很简单,但我遇到了一个重大问题。
说我在pandas中有以下数据框。
price ordersize
0 0.139664 6.051679
1 0.139665 2.358634
2 0.139665 2.618828
3 0.139665 27.240000
4 0.139665 0.040661
5 0.140060 3.000000
6 0.140100 1.463016
7 0.140128 0.020000
8 0.140418 85.000000
9 0.140427 7.000000
这是BCHBTC的订单
正如您所看到的从索引1到索引5,我们看到了相同价格的订单数量。
我需要接受这个输入并让它对数据进行分区,以便输出另一个像这样的数据帧。
price ordersize
0 0.139664 6.051679
1 0.139665 32.258123
2 0.140060 3.000000
3 0.140100 1.463016
4 0.140128 0.020000
5 0.140418 85.000000
6 0.140427 7.000000
我已经尝试过使用groupby和其他东西,但它没有给我正确的输出,或者给它一个非常奇怪的格式化很难处理。
如果我能得到一些帮助,那将非常感激。
答案 0 :(得分:0)
您可以使用groupby
和sum
:
df2 = df.groupby("price").sum()
这会为您提供新的ordersize
,其中price
为索引。如果您希望将索引作为列返回,则可以使用reset_index
:
df2.reset_index(level=0, inplace=True)
答案 1 :(得分:0)
使用groupby
与as_index=False
:
df = df.groupby('price', as_index=False)['ordersize'].sum()
print(df)
输出:
price ordersize
0 0.139664 6.051679
1 0.139665 32.258123
2 0.140060 3.000000
3 0.140100 1.463016
4 0.140128 0.020000
5 0.140418 85.000000
6 0.140427 7.000000
答案 2 :(得分:0)
想出来。
我使用了错误的数据类型,它将浮点数舍入到错误的小数位。结果我甚至不需要再使用group了。