首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不用叠叠用垃圾桶制作桌子

不用叠叠用垃圾桶制作桌子
EN

Stack Overflow用户
提问于 2022-09-15 17:05:00
回答 1查看 18关注 0票数 1

我有两个列的dataframe:

代码语言:javascript
运行
复制
df=[[5,3,1,9],[0,6,2,3],[1,5,1,8],[5,6,2,8],[2,9,11,3],[0,1,1,17]]
df=pd.DataFrame(df1, columns = ['A_june', 'A_july', 'B_june', 'B_july'])

我希望将所有这些列分组到相同的回收箱中,即0-2、2-4、4-6、6-8、8-10和10+,并将它们显示在一个表中,其中包含填充这些行和列的计数:

代码语言:javascript
运行
复制
Bins      A_june   A_july   B_june   B_july

0-2
2-4
4-6
6-8
...

我遇到麻烦的地方是如果我使用pd.cut,我不知道如何像这样显示它。我试过了。基本上

代码语言:javascript
运行
复制
df=df(pd.cut(A_june,bins),pd.cut(A_july,bins))
df=df.groupby(pd.cut(A_june,bins),pd.cut(A_july,bins)).size().unstack()

但最后,我得到了groupby对象和类似的对象,这些对象无法满足我的需要,而且这些对象也没有正确的行和列。

(谢谢你的建议!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-15 19:54:58

尝试:

代码语言:javascript
运行
复制
x = pd.cut(
    df.stack(),
    pd.IntervalIndex.from_breaks([*range(0, 11, 2), np.inf], closed="left"),
).droplevel(0)

print(pd.crosstab(x, x.index))

指纹:

代码语言:javascript
运行
复制
col_0        A_july  A_june  B_july  B_june
row_0                                      
[0.0, 2.0)        1       3       0       3
[2.0, 4.0)        1       1       2       2
[4.0, 6.0)        1       2       0       0
[6.0, 8.0)        2       0       0       0
[8.0, 10.0)       1       0       3       0
[10.0, inf)       0       0       1       1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73734996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档