首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算有条件的行

如何计算有条件的行
EN

Stack Overflow用户
提问于 2020-06-28 04:03:11
回答 2查看 62关注 0票数 0

我如何计算每个类别中与标签相比较的数量?

代码语言:javascript
运行
复制
      Credit  Term      Y
0  Excellent     3   safe
1       fair     5  risky
2       poor     3  risky
3       fair     5  risky
4  Excellent     5   safe
5       poor     3  risky
6  Excellent     5   safe
7       poor     3  risky
8       fair     3   safe
9       fair     5   safe

这是我的数据,我想计算有多少安全、优秀、贫穷和公平,以及有多少风险、优秀、贫穷和公平,比如优秀,3,安全,0,风险,等等。

代码语言:javascript
运行
复制
data[(data['Credit']=='Excellent')&(data['Y']=='safe')].count()
data[(data['Credit']=='Excellent')&(data['Y']=='risky')].count()

代码语言:javascript
运行
复制
elements,counts = np.unique(data['Credit'],return_counts = True)

我怎么做一张像这样的桌子?

代码语言:javascript
运行
复制
               safe    risky
excellent      3        0
poor           0        3
fair           2        2
EN

回答 2

Stack Overflow用户

发布于 2020-06-28 04:21:13

使用Pandas groupby()unstack()

代码语言:javascript
运行
复制
data.groupby(['Credit', 'Y']).count().unstack()
票数 0
EN

Stack Overflow用户

发布于 2020-06-28 04:22:08

您可以使用pivot_table:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html

代码语言:javascript
运行
复制
In [16]: df
Out[16]:
      credit  term      Y
0  Excellent     3   safe
1       fair     5  risky
2       poor     3  risky
3  Excellent     5   safe
4       fair     5   safe

In [17]: pd.pivot_table(df, index=['credit'], columns=['Y'], aggfunc='count')
Out[17]:
           term
Y         risky safe
credit
Excellent   NaN  2.0
fair        1.0  1.0
poor        1.0  NaN

In [18]: pd.pivot_table(df, index=['credit'], columns=['Y'], aggfunc='count', fill_value=0)
Out[18]:
           term
Y         risky safe
credit
Excellent     0    2
fair          1    1
poor          1    0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62614967

复制
相关文章

相似问题

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