小编典典

如果性能是一个问题,请尝试:

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相关推荐

  1. Python:在Pandas数据框中查找缺失值

    How to find Missing values in a data frame using Python/Pandas 如何使用Python / Pandas查找数据框中的缺失值 介绍: (In ...

  2. python数据框去重_【Python】基于某些列删除数据框中的重复值

    Python按照某些列去重,可用drop_duplicates函数轻松处理.本文致力用简洁的语言介绍该函数. 一.drop_duplicates函数介绍 drop_duplicates函数可以按某列去 ...

  3. python绘制星空图_【Python】基于某些列删除数据框中的重复值

    阿黎逸阳 精选Python.SQL.R.MATLAB等相关知识,让你的学习和工作更出彩(可提供风控建模干货经验). Python按照 某些列去重 ,可用 drop_duplicates函数轻松处理 . ...

  4. Python使用pandas设置数据列中float数据类型的有效小数位数、抑制科学计数法

    Python使用pandas设置数据列中float数据类型的有效小数位数.抑制科学计数法 目录

  5. python dataframe取一列_python - 从pandas DataFrame列标题中获取列表

    python - 从pandas DataFrame列标题中获取列表 我想从pandas DataFrame中获取列标题列表. DataFrame将来自用户输入,因此我不知道将会有多少列或将调用它们. ...

  6. python 数据框缺失值_Python:处理数据框中的缺失值

    python 数据框缺失值 介绍 (Introduction) In the last article we went through on how to find the missing value ...

  7. python怎么索引txt数据中第四行_python-在熊猫数据框中按行计数编制索引

    我有一个带有两个元素的层次结构索引的"熊猫"数据框(" month"和" item_id").每行表示特定月份的特定项目,并具有用于关注多个 ...

  8. python解决数据框中添加一行或者一列(DataFrame的行列处理)

    1.解决数据框中添加一行(给定值) ###原数据框data_Peak_2 = pd.DataFrame({"Peak_density": np.ndarray.tolist(hma ...

  9. 在pandas数据框中选择多个列

    本文翻译自:Selecting multiple columns in a pandas dataframe I have data in different columns but I don't ...

最新文章

  1. Linux常用命令汇总(持续更新中)
  2. PE文件和COFF文件格式分析——节信息
  3. 干货一:通过自定义PopupWindow实现QQ菜单选项功能
  4. 使用任意数量的关键字实参
  5. jMeter 里如何使用 variable
  6. 解决: Unable to connect to zookeeper server within timeout: 5000
  7. 根据url提取网站域名的方法小结
  8. mysql系统服务初始化_MySql服务初始化、安装、启动
  9. 【PostgreSQL-9.6.3】触发器实例
  10. mysql数据库中更新数据表用以下哪一项_删除数据表用以下哪一项()_学小易找答案...
  11. 基于Web的代码编辑器 Ace的使用
  12. RNN网络对新冠疫情进行预测
  13. 算法——实现随机拿到30道不重复的20以内的加减法题目
  14. 2021年度科技行业有哪些大事件?“杰出科技奖”公布36家企业领先科技技术
  15. 紫色小人_HaPPYBoY(LoVE)
  16. 君子生非异也,善假于物也
  17. 安卓中的BP、AP、NV是什么意思?
  18. Thunder-Beta发布-事后诸葛亮会议-2017秋-软件工程第十一次作业
  19. 【Unity】Unity内存管理与优化(三)
  20. 购物商城实现点击商品列表某商品,进入其详情页!

热门文章

  1. 关于PLSQL Developer报动态执行表不可访问,本会话的自动统计被禁止错的解决方法 .
  2. Java并发编程-线程安全基础
  3. 2019.7.27数组api
  4. Oracle EBS AP 发票放弃行
  5. 解决fatal: unable to connect to github.com问题
  6. 8-Mybatis 的动态 SQL 语句
  7. bgp通告四原则_华为路由器BGP路由选路和负载均衡
  8. c 将html导出pdf文件,将HTML页面转换为PDF文件并导出
  9. tomcat 查看当前请求数_原生线程池这么强大,Tomcat 为何还需扩展线程池?
  10. ajax后台如何把对象转为json_SM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染...