我有一个像这样的数据框架
本0 3573.0 45503562.00 3565.05150 3562.00 3563.0……… …0 3564.00 3564.0 3564.00 3564.0
这也可以通过使用pandas
中的pivot_table
来实现。
下面是为您的代码重新创建的简单示例:
import numpy as np
import pandas as pd
df=pd.DataFrame({'buy':[1,2,3,0,3,2,1],
'sell':[2,3,4,0,5,4,3],
'bin':[1,2,1,2,1,2,1],
'time': [1,1,1,1,1,1,1]
})
df_output=df.pivot_table(columns='bin', values=['buy','sell'], aggfunc=np.sum)
输出如下所示:
bin 1 2
buy 8 4
sell 14 7
如果您想要您提到的输出:
我们可以对上面的数据帧输出进行转置:
df_output.T
或使用如下groupby
输入dataframe
:
df.groupby(['bin'])[['sell', 'buy']].sum()
输出如下:
sell buy
bin
1 14 8
2 7 4
如果您还需要dataframe
中的time
,我们可以通过使用和分离each column
的aggregate
函数来实现:
df.groupby("bin").agg({ "sell":"sum", "buy":"sum", "time":"first"})
输出如下:
sell buy time
bin
1 14 8 1
2 7 4 1