首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >同时检查多个分类列的值

同时检查多个分类列的值
EN

Stack Overflow用户
提问于 2021-01-17 03:09:06
回答 3查看 103关注 0票数 2

我有多个分类列,如婚姻状况、教育、性别、城市和我想一次检查这些列中的所有唯一值,而不是每次都编写这段代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df['Education'].value_counts()

我只能给出几个特性的例子,但是当有那么多分类特性并且不可能一次又一次地编写代码来检查它们时,我需要一个解决方案。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Maritial_Status Education City
Married         UG        LA
Single          PHD       CA
Single          UG        Ca

预期产出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Maritial_Status   Education  City
Married        1  UG       2 LA  1 
Single         2  PHD      1 CA  2

在Python中有什么方法可以做到这一点吗?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-17 03:38:49

是的,您可以使用以下方法获得所需的数据(此外,您也不必担心df的数据是否比指定的4列更多):

  1. df获取(仅) list中的所有分类列
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat_cols = [i for i in df.columns if df[i].dtypes == 'O']
  1. 然后,在分类列上对分组对象运行一个执行loop.size(),并将每个结果(即df对象)存储在一个空的list中。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
li = []
for col in cat_cols:
    li.append(df.groupby([col]).size().reset_index(name=col+'_count'))
  1. 最后,将列表中新创建的concat转换为1。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dat = pd.concat(li,axis=1)

全在1块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat_cols = [i for i in df.columns if df[i].dtypes == 'O']

li = []
for col in cat_cols:
    li.append(df.groupby([col]).size().reset_index(name=col+'_count'))

dat = pd.concat(li,axis=1)# use axis=1, so that the concatenation is column-wise

  Marital Status  Marital Status_count  ...       City  City_count
0       Divorced                   4.0  ...     Athens           4
1        Married                   3.0  ...     Berlin           2
2         Single                   3.0  ...     London           2
3        Widowed                   2.0  ...   New York           2
4            NaN                   NaN  ...  Singapore           2
票数 1
EN

Stack Overflow用户

发布于 2021-01-17 03:41:43

使用value_counts,您可以执行以下操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
res = (df
       .apply(lambda x: x.value_counts()) # column by column value_counts would be applied
       .stack()
       .reset_index(level=0).sort_index(axis=0)
       .rename(columns={'level_0': 'Value', 0: 'value_counts'}))

输出的另一种格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
res['Id'] = res.groupby(level=0).cumcount()
res.set_index('Id', append=True)

解释:

应用value_counts之后,您将得到以下内容:

然后使用堆栈,您可以删除NAN并将所有东西“堆叠起来”,然后您可以对输出进行格式化/排序。

票数 1
EN

Stack Overflow用户

发布于 2021-01-17 03:18:03

要知道每个列有多少重复的唯一值,可以尝试drop_duplicates()方法:

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

https://stackoverflow.com/questions/65759870

复制
相关文章
图像处理中C++如何同时返回多个值
1 . pair<T,T> 返回两个值 //返回两个值的情况 pair<vector<double>,int> R_R(Mat& img) { int n=img.rows; vector<double> a; unsigned int m=img.cols; unsigned int k=img.rows; for(unsigned int i=0;i<m;i++) { for(unsigned int j=0;j<k;j++)
用户9831583
2022/06/16
7920
同时遍历多个数组
python同时遍历两个或更多的序列,可以使用 zip() 组合: questions=['name', 'question','favorite color'] answers=['lancelot
程序员不务正业
2018/06/14
1.2K0
wriesharek同时监听多个端口
之前的文章《wireshark解析自定义的protobuf协议》 ,当时只监听了一个端口,而如果游戏同时有二个 socket 连接,比如一个是网关另外一个是其它的,怎么办呢?
meteoric
2018/11/20
3K0
vim同时编辑多个文件
# 1.如果在终端中开没有打开vim,可以: 横向分割显示: vim -o filename1 filename2 纵向分割显示: vim -O filename1 filename2 # 2.如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件: 横向分割显示: :vs filename 纵向分割显示: :sp filename # 3.窗口切换 在所有窗口中循环移动 Ctrl+ww 如果finename不存在,则会新建该文件并打开。 # 4.关闭所有窗口 :wqa
summerking
2022/09/19
1.3K0
Pandas 查找,丢弃列值唯一的列
数据清洗很重要,本文演示如何使用 Python Pandas 来查找和丢弃 DataFrame 中列值唯一的列,简言之,就是某列的数值除空值外,全都是一样的,比如:全0,全1,或者全部都是一样的字符串如:已支付,已支付,已支付…
萝 卜
2022/05/12
5.7K0
Pandas 查找,丢弃列值唯一的列
同时安装多个的Mysql的实现方法
首写修改my.ini文件 修改这几项即可 [client] port=3310 [mysql] default-character-set=utf8 [mysqld] port=3310 server_id=35 全文如下 #landv 2018年10月5日 11:12:34 [client] port=3310 [mysql] default-character-set=utf8 [mysqld] port=3310 server_id=35 basedir="D:\mysql\mysql-5
landv
2019/03/01
1.5K0
同时安装多个的Mysql的实现方法
删除列中的 NULL 值
今天接到一个群友的需求,有一张表的数据如图 1,他希望能通过 SQL 查询出图 2 的结果。
白日梦想家
2020/07/20
9.9K0
删除列中的 NULL 值
VSC不能同时打开多个文件
通过ctrl+shift+p 获取查找框,查询 settings.json 新增或修改: { // 控制通过 Quick Open 打开的编辑器是否显示为预览编辑器。预览编辑器不会保持打开状态,在将其显式设置为保持打开(例如通过双击或编辑)前将会重复使用。当 "#workbench.editor.enablePreview#" 处于禁用状态时,将忽略此值。 "workbench.editor.enablePreviewFromQuickOpen": false, "workbench.editor.en
手撕代码八百里
2022/05/10
1.7K0
IntelliJ IDEA同时打开多个窗口
1、点击File->Settings 2、点击open new project in new window选项 3、点击Apply即可
别团等shy哥发育
2023/02/25
6.5K0
IntelliJ IDEA同时打开多个窗口
Arduino如何同时使用多个串口
如果想要给Arduino UNO R3同时接上WiFi模块和蓝牙模块时,但是Arduino的串口只有一个,怎样才能让Arduino同时使用多个串口呢?
小雨coding
2020/06/09
4.7K0
Arduino如何同时使用多个串口
PythonWebServer如何同时处理多个请求
源于知乎上一个问题:https://www.zhihu.com/question/56472691/answer/293292349
the5fire
2019/03/01
1.9K0
Windows 服务 同时启动多个服务
最近需要开发 Windows Service 程序,之前没有接触过,所以把了解到的一些东西记录下来。
独立观察员
2022/12/06
1.6K0
Windows 服务 同时启动多个服务
Scrapy:多个爬虫同时运行
在spiders目录的同级目录下创建一个commands目录,并在该目录中创建一个crawlall.py,将scrapy源代码里的commands文件夹里的crawl.py源码复制过来,只修改run()方法即可。(文件夹下面必须要有__init__文件)
新码农
2020/12/29
1.5K0
matplotlib 同时绘制多个图形(二)
matplotlib中,使用subplot2grid()函数,可以让图形跨越固定的网格布局。通过设置该函数的rowspan 和 colspan 参数,可以让图形占据多个行和列。
用户6021899
2019/08/14
1.8K0
Windows 下同时安装多个版本的 JDK
Path 变量开始的位置添加 %JAVA_HOME%\bin 这一项,如果存在则无需添加,注意删除原来版本的路径配置
攻城狮杰森
2022/06/03
1.3K0
Windows 下同时安装多个版本的 JDK
可以同时解析多个binlog吗
其次,当我们采用这种方式解析binlog时 $ mysqlbinlog -vvv --base64-output=decode-rows --start-position=4 --stop-position=2000 binlog.000001 binlog.000002 时,它的工作方式是这样的:
老叶茶馆
2022/12/02
1K0
微服务同时接入多个Kafka
kafkaOneTemplate 定义第一个Kafka的高级模板,用来发送消息 kafkaOneContainerFactory 消费监听容器,配置在@KafkaListener中, producerFactory 生产者工厂 consumerFactory 消费者工厂 producerConfigs 生产者配置 consumerConfigs 消费者配置
阿提说说
2022/11/18
1.3K0
微服务同时接入多个Kafka
matplot 同时绘制多个图形(一)
matplotlib.pyplot中的subplot()函数可以用来在一张画布上绘制多个图形。
用户6021899
2019/08/14
2.9K0
ORACLE列值合併
在SQL Server中合併列值能够使用For Xml Path,在Oracle中則能够使用wm_concat 或 ListAgg。
全栈程序员站长
2022/07/13
1.1K0
replaceAll()如何同时替换多个不同的字符串(或多个符号)
正好我遇到过这个情况,就跟她分享了一下心得,解决问题后的她开心的像刚充完气儿一样。
陈哈哈
2020/07/03
5.7K0

相似问题

如何同时对多个分类列进行编码

116

Postgresql:检查列是否同时等于多个值的最佳方法

23

同时替换分类列和数字列中缺少的值

211

检查多个列值

311

极性:在保持分类类型的同时将分类列设置为特定值

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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