大Pandas的分食与转化

2024-04-18 10:59:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的数据帧。在

A  B
1  1
4  1
5  1
6  2
8  3
15 4 

我想将数据帧分块并转换到下面。在

^{2}$

我试过groupby+Grouper,但我不知道如何装箱。在

我能问一下如何转换数据吗?在


Tags: 数据分块groupby装箱grouper
1条回答
网友
1楼 · 发布于 2024-04-18 10:59:37

您需要带有参数right=False^{}才能不包含带有groupby的正确容器:

感谢您John Galt添加参数labels。在

print (pd.cut(df['A'], 
              bins=[0, 5, 10, 15, 20], 
              labels=['[0,4)', '[5,9)', '[10,14)', '[15,19)'], 
              right=False))
0      [0,4)
1      [0,4)
2      [5,9)
3      [5,9)
4      [5,9)
5    [15,19)
Name: A, dtype: category

df = df.groupby([pd.cut(df['A'], bins=[0, 5, 10, 15, 20], 
                        labels=['[0,4)', '[5,9)', '[10,14)', '[15,19)'], 
                        right=False)])
       .B.sum()
       .fillna(0)
       .reset_index()

df.columns = ['range(A)','sum(B)']
print (df)
  range(A)  sum(B)
0    [0,4)     2.0
1    [5,9)     6.0
2  [10,14)     0.0
3  [15,19)     4.0

相关问题 更多 >