Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >熊猫:是否有一种方法来计算某一列中出现的值的数量,其中包含单元格中的字典值?

熊猫:是否有一种方法来计算某一列中出现的值的数量,其中包含单元格中的字典值?
EN

Stack Overflow用户
提问于 2022-06-23 07:43:14
回答 3查看 85关注 0票数 2

我有一个df列,每个单元格都包含一个字典,所以当我将value_counts应用到这个列时,我会得到每个字典出现的次数的结果。但我需要的是得到独立值的肝硬化数目。列单元格如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                      col1

1   [{'name': 'John'}, {'name': 'Mark'}, {'name': 'Susan'}, {'name': 'Mr.Bean'}, {'name': 'The 
   Smiths'}]

2   [{'name': 'Mark'}, {'name': 'Barbara}, {'name': 'Poly'}, {'name': 'John'}, {'name': 'Nick'}]

因此,基本上,我需要的是在整个列中有多少苏珊斯、约翰斯等等。

如有任何帮助,将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2022-06-23 09:23:45

您可以使用@jch安装程序来尝试此操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.DataFrame({'col1': [ [{'name': 'John'}, {'name': 'Mark'}, {'name': 'Susan'}, {'name': 'Mr.Bean'}, {'name': 'The Smiths'}], \
[{'name': 'Mark'}, {'name': 'Barbara'}, {'name': 'Poly'}, {'name': 'John'}, {'name': 'Nick'}] ] })


pd.DataFrame(df['col1'].to_list()).stack().str['name'].value_counts()

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
John          2
Mark          2
Susan         1
Mr.Bean       1
The Smiths    1
Barbara       1
Poly          1
Nick          1
dtype: int64

让我们使用熊猫DataFrame构造函数,stack对单个列进行整形,然后使用来自.str访问器的选择器从字典中获取值,最后使用value_counts

票数 2
EN

Stack Overflow用户

发布于 2022-06-23 09:01:13

数据实际上是每行字典的列表。您可以从每一行构建一个数据帧。然后,这些名称包含在一个列中,该列可以转换为一个列表,然后爆炸,然后对其执行一个value_counts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.DataFrame({'col1': [ [{'name': 'John'}, {'name': 'Mark'}, {'name': 'Susan'}, {'name': 'Mr.Bean'}, {'name': 'The Smiths'}], \
[{'name': 'Mark'}, {'name': 'Barbara'}, {'name': 'Poly'}, {'name': 'John'}, {'name': 'Nick'}] ] })

print(df)

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                                                col1
0  [{'name': 'John'}, {'name': 'Mark'}, {'name': ...
1  [{'name': 'Mark'}, {'name': 'Barbara'}, {'name...

value_count:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.apply(lambda x: pd.DataFrame(x['col1']).squeeze().to_list(), axis=1).explode().value_counts()

产出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
John          2
Mark          2
Susan         1
Mr.Bean       1
The Smiths    1
Barbara       1
Poly          1
Nick          1
票数 1
EN

Stack Overflow用户

发布于 2022-06-23 23:17:01

我们可以使用explode()函数将类似于列表的每个元素转换为一行,复制索引值。然后,我们可以使用json_normalize将字典中的每个键转换为列。然后,可以使用value_counts()来计算dataFrame中的每个唯一值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.DataFrame({'col1': [ [{'name': 'John'}, {'name': 'Mark'}, {'name': 'Susan'}, {'name': 'Mr.Bean'}, {'name': 'The Smiths'}], \
                             [{'name': 'Mark'}, {'name': 'Barbara'}, {'name': 'Poly'}, {'name': 'John'}, {'name': 'Nick'}] ] })
print(pd.json_normalize(df.col1.explode()).value_counts())

结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name      
John          2
Mark          2
Barbara       1
Mr.Bean       1
Nick          1
Poly          1
Susan         1
The Smiths    1

如果您想得到任何一个名称的计数,请说John

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name = 'John'
print(pd.json_normalize(df.col1.explode()).eq(name).sum())

结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72732992

复制
相关文章
js中如何判断数组中包含某个特定的值_js数组是否包含某个值
array.includes(searchElement[, fromIndex])
全栈程序员站长
2022/09/27
18.5K0
使用EXCLE表格,有相同列,取某一列的值
如图,我有两列MAC地址表,然后需要把F列的值取值到D列,可以使用公式:=VLOOKUP(A1,$E$1:$F$44,2,0)进行处理数据。A1代表以哪一列为基础取值参考,$E$1:$F$44代表查找对比范围。
Tacc
2022/01/11
4.4K0
使用EXCLE表格,有相同列,取某一列的值
删除列中的 NULL 值
今天接到一个群友的需求,有一张表的数据如图 1,他希望能通过 SQL 查询出图 2 的结果。
白日梦想家
2020/07/20
9.9K0
删除列中的 NULL 值
Python - 字典中的值求和
Python 编程语言是一种高级的通用编程语言,广泛用于各种目的。该软件由网页设计、数据分析和人工智能组成。人们之所以意识到这一点,是因为它的简单性、易读性和可用性的便利性。Python 提供了各种预定义的数据结构,包括列表、元组、映射、集合、堆和阵容。这些组件在每种编程语言中都至关重要。在这篇文章中,我们将专注于用于保存关键信息对的词典。
很酷的站长
2023/08/11
3160
Python - 字典中的值求和
Java 中如何判断数组中是否包含某个值?
public static boolean useLoop(String[] arr, String targetValue) { for(String s: arr){ if(s.equals(targetValue)) return true; } return false; }
水货程序员
2018/11/13
6K0
如何检查 Java 数组中是否包含某个值 ?
在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题。比如说:如何检查Java数组中是否包含某个值 ?像这类灵魂拷问的主题,非常值得深入地研究一下。
用户7886150
2021/04/28
9.1K0
Java之判断数组中是否包含某个值
方式一:使用Arrays.asList(str).contains() public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); } 示例如下: String[] str={"学历教育","专业教育","通识教育","其它在职训"} ; if (!Arrays.asList(st
IT工作者
2022/02/12
4.2K0
获取GridView中的某列值
    protected void GridView1_RowEditing(object sen
Java架构师必看
2021/03/22
10.2K0
jquery判断数组中是否包含某个元素的值_java判断元素是否在数组中
如果arry数组里面存在”C#” 这个字符串则返回该字符串的数组下标,否则返回(不包含在数组中) -1
全栈程序员站长
2022/11/02
5.8K0
JavaScript判断数组中是否包含某个值「建议收藏」
方法二:array.includes(searcElement[,fromIndex])
全栈程序员站长
2022/11/10
2.3K0
Drools规则引擎-如果判断某个对象中的集合是否包含指定的值
在实际生产过程中,有很多关于集合的处理场景,比如一个Fact对象中包含有一个集合,而需要判断该集合是否包含某个值。而Drools规则引擎也提供了多种处理方式,比如通过from、contains、exists等进行操作,比较。
程序新视界
2019/08/14
2.6K0
用画小狗的方法来解释Java中的值传递
答案是 A旺财,changeName方法并没有把myDog的名称改了。如果你答错了,没关系,我要开始画小狗了,画完你就明白了;如果你答对了,但不太明白其中的原因,那我画的小狗也肯定能帮到你。
凯哥Java
2019/07/01
8930
灵魂拷问:如何检查Java数组中是否包含某个值 ?
另外,我想要告诉大家的是,作为程序员,我们千万不要轻视这些基础的知识点。因为基础的知识点是各种上层技术共同的基础,只有彻底地掌握了这些基础知识点,才能更好地理解程序的运行原理,做出更优化的产品。
沉默王二
2019/12/17
4.8K0
​day023: JS判断数组中是否包含某个值
day023: JS判断数组中是否包含某个值 方法一:array.indexOf 此方法判断数组中是否存在某个值,如果存在,则返回数组元素的下标,否则返回-1。 var arr=[1,2,3,4]; var index=arr.indexOf(3); console.log(index); 方法二:array.includes(searcElement[,fromIndex]) 此方法判断数组中是否存在某个值,如果存在返回true,否则返回false var arr=[1,2,3,4]; if(arr.in
用户3806669
2021/03/11
4.5K0
select count(*)、count(1)、count(主键列)和count(包含空值的列)有何区别?
最直接的方法,我想就是通过10053事件,来看下不同SQL对应的执行计划和资源消耗等情况,进而看看是否有些信息可以为我们所用。
bisal
2019/01/29
3.4K0
前端面试 【JavaScript】— JS判断数组中是否包含某个值
方法一:array.indexOf() 此方法判断数组中是否存在某个值,如果存在,则返回数组元素的下标,否则返回-1 var arr=[1,2,3,4]; var index=arr.indexOf(3); console.log(index); // 2 方法二:array.includes() 此方法判断数组中是否存在某个值,如果存在返回true,否则返回false var arr=[1,2,3,4]; if(arr.includes(3)){ console.log("存在"); }els
越陌度阡
2021/11/24
3.9K0
webpack 中的 hash 值有何用处?
使用 webpack 等打包器进行打包时,每个资源都可以生成一个带有 hash 的路径,如 main.071b73.js。
山月
2022/11/02
1.2K0
webpack 中的 hash 值有何用处?
Excel VBA解读(140): 从调用单元格中获取先前计算的值
如果有一个依赖于一些计算慢的资源的用户定义函数,可能希望该用户定义函数在大多数情况下只返回其占用的单元格中最后一次计算得到的值,并且只偶尔使用计算慢的资源。
fanjy
2019/07/19
6.8K0
Mysql与Oracle中修改列的默认值
背景: 业务发展需要,需要复用历史的表,并且通过表里面原来一个未使用的字段来区分不同的业务。 于是想到通过default来修改列的默认值: alter table A modify column biz default 'old' comment '业务标识 old-老业务, new-新业务' 现象: 上线几天之后,业务反馈旧业务的相关数据查询不到了。找后台运维查生产数据库,发现历史数据的biz字段还是null 原因: 自己在本地mysql数据库试了下,好像的确是default没法修改历史数据为null
SecondWorld
2021/09/08
13.2K0
点击加载更多

相似问题

熊猫-检查dataframe列是否包含键:字典中的值对

13

计算字典中的值的数量?

339

融化熊猫数据,其中包含字典列,因此字典值也会被融化。

20

用更快的方法来计算大熊猫列表中某一值以上的值?

14

是否有一种方法来计算列中null之间的非空值?

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文