首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于两列的value_counts()?

基于两列的value_counts()?
EN

Stack Overflow用户
提问于 2021-08-26 07:35:39
回答 2查看 69关注 0票数 0

我有一个包含文本的熊猫数据框架,每个文本可以属于一个流派和几个类别。由于每个文本可以属于多个类别,因此每个列都是一次性编码的。

下面是一个例子(实际的数据帧有更多的类别):

代码语言:javascript
运行
AI代码解释
复制
df = pd.DataFrame({'text':{0:'This is an example string', 1: 'this is another example', 2:'and another',3:'and yet another example'},'genre':{0: 'fiction', 1: 'fiction', 2: 'scientific', 3: 'news'},'category_nature':{0: 1, 1: 1, 2: 0, 3:1}, 'category_history':{0: 1, 1: 0, 2: 0, 3:1},'category_art':{0: 0, 1: 0, 2: 1, 3: 0}})

我正在寻找一种方法,既可以在类别上获得像value_counts()这样的东西,也可以在流派上获得,就像这样:

我首先尝试更改one-hot-encoded列的格式,但后来丢失了"genre“列。

代码语言:javascript
运行
AI代码解释
复制
df_new = df.drop(columns=['text','genre']);
count = df_new.sum().sort_values(ascending=False)

我还查看了下面的帖子,但它并不完全是我想要的。

Python: get a frequency count based on two columns (variables) in pandas dataframe some row appers

Value_counts on multiple columns with groupby

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-26 07:47:38

您可以使用meltgroupby

代码语言:javascript
运行
AI代码解释
复制
(df.melt(id_vars=['text', 'genre'], var_name='category', value_name='count')
   .groupby(['genre', 'category'])
   ['count'].sum()
   # below is for formatting only
   .reset_index()
   .query('count > 0')
   .assign(category=lambda d:d['category'].str[9:])
)

输出:

代码语言:javascript
运行
AI代码解释
复制
        genre category  count
1     fiction  history      1
2     fiction   nature      2
4        news  history      1
5        news   nature      1
6  scientific      art      1
票数 0
EN

Stack Overflow用户

发布于 2021-08-26 07:49:23

这就是你要找的东西吗?

代码语言:javascript
运行
AI代码解释
复制
df.groupby('genre').sum().reset_index().melt(id_vars='genre')


        genre          variable  value
0     fiction   category_nature      2
1        news   category_nature      1
2  scientific   category_nature      0
3     fiction  category_history      1
4        news  category_history      1
5  scientific  category_history      0
6     fiction      category_art      0
7        news      category_art      0
8  scientific      category_art      1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68941493

复制
相关文章
python合并两列
需要把数字类型转化为字符串类型,再进行连接 第一种 df1 = pd.DataFrame({'Year': ['2014', '2015'], 'quarter': ['q1', 'q2']}) df1['period'] = df[['Year', 'quarter']].apply(lambda x: ''.join(x), axis=1) df1 Year quarter period 0 2014 q1 2014q1 1 2015 q2 2015q2 第二
用户1359560
2018/08/27
3.8K0
Hadoop两列数据的排序
如果利用mapreduce过程的自动排序,只能实现根据第一列排序,现在需要自定义一个继承自WritableComparable接口的类,用该类作为key,就可以利用mapreduce过程的自动排序了。代码如下:
星哥玩云
2022/06/30
1.7K0
随机日志:两列显示
  看到别人的随机日志都是现实两列,我这一直显示一列,一是因为显示一列不好看,二是提供的信息量太低。因此改成两列还是很有必要的,于是自己写了些css样式,添加到主题的style.css文件的最下面。
the5fire
2019/02/28
9840
Pandas数据处理——通过value_counts提取某一列出现次数最高的元素
Pandas数据处理——渐进式学习——通过value_counts提取某一列出现次数最高的元素
红目香薰
2023/02/23
1.4K0
Pandas数据处理——通过value_counts提取某一列出现次数最高的元素
JS的左右两列自动拉伸对齐
该文提供了一个JS代码,用于实现两个区块自动对齐。具体来说,通过将两个区块的ID分别作为参数传递给函数,该函数将比较两个区块的高度,并相应地更改高度以使它们对齐。该代码可用于任何具有ID的区块,并且可以在任何HTML文档中使用。
练小习
2017/12/29
3.6K0
pandas的columns函数_python value_counts
1、使用DataFrame.index = [newName],DataFrame.columns = [newName],这两种方法可以轻松实现。
全栈程序员站长
2022/09/30
2.6K0
2.布局解决方案 两列、三列、多列、不定宽+一列自适应<6>
和上面的解决方案是一样的,自己动脑筋哦 下面的overflow的方式 display:table和flex大家自己练习。
河湾欢儿
2018/09/06
1.7K0
两种主要列存储方式的区别
Bigtable,HBase,Hypertable和Cassandra都被称为列存储,因为它们能够单独存储和访问列族。 这使它们看起来与列存储(如Sybase IQ,C-Store,Vertica,VectorWise,MonetDB,ParAccel和Infobright)处于相同的类别,这些列存储也可以单独访问列。 我认为,称呼这两个系统的列存储导致了大量的混乱和错误的预期。这篇博客文章试图澄清一些这种混乱,突出这些集合系统之间的高级差异。 最后,我将提出一些可能的方法来重命名这些组,以避免将来混淆。
哒呵呵
2018/08/06
1.5K0
在一个df里,怎么根据两列去把另外两列合并呢?
前几天在Python最强王者交流群【群除我佬】问了一个Pandas处理的问题,提问截图如下:
Python进阶者
2023/03/02
1.6K0
在一个df里,怎么根据两列去把另外两列合并呢?
两列布局——但只用右浮动
通过这个实验我明白了一个知识点,做左右结构的时候,不用把左边的写上左浮动,只需要把有浮动的块放到最前边,并设置有浮动,左边的放在有浮动的下边而且不用管,这样,父元素也不用清楚浮动,左边的元素也不用左浮动,一切就依旧会和自己做左右布局的老方法一样的效果。切记,结构上,把有浮动的元素放到前边,并设置右浮动。 为了试验不用清楚浮动,我把clearfix的相关代码注销了。 上代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset
xing.org1^
2018/05/17
8900
python用符号拼接DataFrame两列
碰到Null值时,会报错,因为none不可与str运算 解决如下,加入if判断即可
诡途
2022/01/07
1.7K0
小程序-两列瀑布流布局
新的设计图是按两列瀑布流排版的,类似于花瓣网那种。看到设计图后就在网上找,如何在小程序简单的实现,后来找到了一个特别简单的方法,就是利用wx:if和数组的下标对2取余来判断是排在左列还是排在右列, 话不多说看图上代码:
九旬
2020/10/23
2K0
小程序-两列瀑布流布局
基于R的竞争风险模型的列线图
将竞争风险模型的cmprsk包加载到R中,使用cuminc()函数和crr()函数可以进行考虑竞争风险事件生存数据的单变量分析和多变量分析。以往推文我们已经详细描述了基于R语言的实现方法,这里不再赘述。那么,您如何看待竞争风险模型呢?如何绘制竞争风险模型的列线图?在这里,我们演示如何绘制基于R的列线图。
用户6317549
2020/07/22
4.2K0
基于R的竞争风险模型的列线图
Excel中两列(表)数据对比的常用方法
Excel中两列数据的差异对比,方法非常多,比如简单的直接用等式处理,到使用Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件)实现各种复杂的数据整理后再进行对比,可以根据实际需要选择使用。
大海Power
2021/08/30
16.9K0
SQL练习之两个列值的交换
SELECT * FROM dbo.test2 现在我们将Province列值和Company列值互换,代码如下: UPDATE test2 SET Company=Province, Provin
郑小超.
2018/01/24
3.6K0
SQL练习之两个列值的交换
【R语言】数据框按两列排序
我相信大家经常会使用Excel对数据进行排序。有时候我们会按照两个条件来对数据排序。假设我们手上有下面这套数据,9个人,第二列(score)为他们的考试成绩,第三列(code)为对应的评级。80分以上为优秀,60-80为良,60以下为差。
生信交流平台
2022/09/21
2.3K0
【R语言】数据框按两列排序
PowerQuery拆分两列,并数据相对应
【问题】把姓名与电话列拆分为行,姓名与电话是按顺序对应的。难点:姓名与电话的个数不定
哆哆Excel
2022/10/31
1K0
VBA:基于指定列删除重复行
文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要保留最后测试的数据。之前通过拷贝行的方式保留最后一行的数据(参见文末的延伸阅读1),但运行效率较低。目前通过借助数组和字典达到删除重复行的效果。
Exploring
2022/12/18
3.5K0
VBA:基于指定列删除重复行
生成两表(列)数据全部组合的极简方法
在《PQ-综合实战:根据关键词匹配查找对应内容》里,为了拼出两个表数据的全部组合,使用的方法是先分别给每个表添加一列,然后再用合并查询的方法来完成,而且合并完成后还得再把添加的列给删掉,步骤繁多——实际上,如果使用利用跨查询的引用方式,该问题将极其简单。
大海Power
2021/08/30
1.3K0
点击加载更多

相似问题

基于不同列值的value_counts列

12

基于value_counts列的数据过滤(熊猫)

48

在python中基于多列获取value_counts

12

如何迭代包含两列的value_counts输出?

10

Python计算两列的value_counts并使用groupby

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文