熊猫Bining和Group By

时间:2018-02-01 21:21:17

标签: python pandas

我觉得这很简单,但我遇到了一个重大问题。

说我在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和其他东西,但它没有给我正确的输出,或者给它一个非常奇怪的格式化很难处理。

如果我能得到一些帮助,那将非常感激。

3 个答案:

答案 0 :(得分:0)

您可以使用groupbysum

df2 = df.groupby("price").sum()

这会为您提供新的ordersize,其中price为索引。如果您希望将索引作为列返回,则可以使用reset_index

df2.reset_index(level=0, inplace=True)

答案 1 :(得分:0)

使用groupbyas_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了。