python values count_使用Python Pandas从数据框中获取总values_count
小编典典
如果性能是一个问题,请尝试:
from collections import Counter
Counter(df.values.ravel())
#Counter({'string1': 3, 'string2': 2, 'string3': 1})
或者stack它变成一个Series再使用value_counts
df.stack().value_counts()
#string1 3
#string2 2
#string3 1
#dtype: int64
对于具有少量列的较大(长)DataFrame,循环可能比堆栈快:
s = pd.Series()
for col in df.columns:
s = s.add(df[col].value_counts(), fill_value=0)
#string1 3.0
#string2 2.0
#string3 1.0
#dtype: float64
此外,还有一个numpy解决方案:
import numpy as np
np.unique(df.to_numpy(), return_counts=True)
#(array(['string1', 'string2', 'string3'], dtype=object),
# array([3, 2, 1], dtype=int64))
df = pd.DataFrame({'row1': ['string1', 'string1', 'string2'],
'row2': ['string3', 'string1', 'string2']})
def vc_from_loop(df):
s = pd.Series()
for col in df.columns:
s = s.add(df[col].value_counts(), fill_value=0)
return s
小 DataFrame
%timeit Counter(df.values.ravel())
#11.1 µs ± 56.6 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit df.stack().value_counts()
#835 µs ± 5.46 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
%timeit vc_from_loop(df)
#2.15 ms ± 34.6 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit np.unique(df.to_numpy(), return_counts=True)
#23.8 µs ± 241 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
长 DataFrame
df = pd.concat([df]*300000, ignore_index=True)
%timeit Counter(df.values.ravel())
#124 ms ± 1.85 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit df.stack().value_counts()
#337 ms ± 3.59 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
%timeit vc_from_loop(df)
#182 ms ± 1.58 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit np.unique(df.to_numpy(), return_counts=True)
#1.16 s ± 1.09 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
2020-12-20
python values count_使用Python Pandas从数据框中获取总values_count相关推荐
- Python:在Pandas数据框中查找缺失值
How to find Missing values in a data frame using Python/Pandas 如何使用Python / Pandas查找数据框中的缺失值 介绍: (In ...
- python数据框去重_【Python】基于某些列删除数据框中的重复值
Python按照某些列去重,可用drop_duplicates函数轻松处理.本文致力用简洁的语言介绍该函数. 一.drop_duplicates函数介绍 drop_duplicates函数可以按某列去 ...
- python绘制星空图_【Python】基于某些列删除数据框中的重复值
阿黎逸阳 精选Python.SQL.R.MATLAB等相关知识,让你的学习和工作更出彩(可提供风控建模干货经验). Python按照 某些列去重 ,可用 drop_duplicates函数轻松处理 . ...
- Python使用pandas设置数据列中float数据类型的有效小数位数、抑制科学计数法
Python使用pandas设置数据列中float数据类型的有效小数位数.抑制科学计数法 目录
- python dataframe取一列_python - 从pandas DataFrame列标题中获取列表
python - 从pandas DataFrame列标题中获取列表 我想从pandas DataFrame中获取列标题列表. DataFrame将来自用户输入,因此我不知道将会有多少列或将调用它们. ...
- python 数据框缺失值_Python:处理数据框中的缺失值
python 数据框缺失值 介绍 (Introduction) In the last article we went through on how to find the missing value ...
- python怎么索引txt数据中第四行_python-在熊猫数据框中按行计数编制索引
我有一个带有两个元素的层次结构索引的"熊猫"数据框(" month"和" item_id").每行表示特定月份的特定项目,并具有用于关注多个 ...
- python解决数据框中添加一行或者一列(DataFrame的行列处理)
1.解决数据框中添加一行(给定值) ###原数据框data_Peak_2 = pd.DataFrame({"Peak_density": np.ndarray.tolist(hma ...
- 在pandas数据框中选择多个列
本文翻译自:Selecting multiple columns in a pandas dataframe I have data in different columns but I don't ...
最新文章
- Linux常用命令汇总(持续更新中)
- PE文件和COFF文件格式分析——节信息
- 干货一:通过自定义PopupWindow实现QQ菜单选项功能
- 使用任意数量的关键字实参
- jMeter 里如何使用 variable
- 解决: Unable to connect to zookeeper server within timeout: 5000
- 根据url提取网站域名的方法小结
- mysql系统服务初始化_MySql服务初始化、安装、启动
- 【PostgreSQL-9.6.3】触发器实例
- mysql数据库中更新数据表用以下哪一项_删除数据表用以下哪一项()_学小易找答案...
- 基于Web的代码编辑器 Ace的使用
- RNN网络对新冠疫情进行预测
- 算法——实现随机拿到30道不重复的20以内的加减法题目
- 2021年度科技行业有哪些大事件?“杰出科技奖”公布36家企业领先科技技术
- 紫色小人_HaPPYBoY(LoVE)
- 君子生非异也,善假于物也
- 安卓中的BP、AP、NV是什么意思?
- Thunder-Beta发布-事后诸葛亮会议-2017秋-软件工程第十一次作业
- 【Unity】Unity内存管理与优化(三)
- 购物商城实现点击商品列表某商品,进入其详情页!
热门文章
- 关于PLSQL Developer报动态执行表不可访问,本会话的自动统计被禁止错的解决方法 .
- Java并发编程-线程安全基础
- 2019.7.27数组api
- Oracle EBS AP 发票放弃行
- 解决fatal: unable to connect to github.com问题
- 8-Mybatis 的动态 SQL 语句
- bgp通告四原则_华为路由器BGP路由选路和负载均衡
- c 将html导出pdf文件,将HTML页面转换为PDF文件并导出
- tomcat 查看当前请求数_原生线程池这么强大,Tomcat 为何还需扩展线程池?
- ajax后台如何把对象转为json_SM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染...