【python】列表元素统计
文章目录
- 【python】列表元素统计
- 一、列表元素统计
- 1.1 原始数据长的样子
- 1.2 方法一:使用标准 Python库
- 2.3 方法二:使用pandas
- 2.4 图像展示
- 二、数据清洗
【python】列表元素统计
一、列表元素统计
1.1 原始数据长的样子
目标: 对list中的数据进行统计(其实就是对相同元素的数据进行一个统计)
方法:
方法一: 使用标准 Python库
方法二: 使用 pandas
1.2 方法一:使用标准 Python库
def get_counts(sequence):counts = {}for x in sequence:if x in counts:counts[x] += 1else:counts[x] = 1return counts
# 如果非常了解 Python标准库,那么你可能会将代码写得更简洁一些:
from collections import defaultdict
def get_counts2(sequence):counts = defaultdict(int) # 所有的值均会被初始化为0for x in sequence:counts[x] += 1return counts
对于获取的结果,我们还可以进一步实现一个统计
def top_counts(count_dict, n=10):value_key_pairs = [(count, tz) for tz, count in count_dict.items()]value_key_pairs.sort() # 排序return value_key_pairs[-n:] # 倒数10个
同样,可以采用python标准库,进行一个结果统计
from collections import Counter
counts = Counter(time_zones)
counts.most_common(10)
2.3 方法二:使用pandas
首先,我们先回顾一下,我们的原始数据:一个列表,元素为字典形式,实则就是列表套的字典。
现在,我们使用pandas库文件进行读取:
import pandas as pd
import numpy as np
frame = pd.DataFrame(recodes)
现在再来看我们的统计结果:
2.4 图像展示
我们再来绘制一个图像查看一下:
# 首先我们先处理一下位置或者缺失值
clean_tz = frame['tz'].fillna('missing')
clean_tz[clean_tz==''] = 'unknown'
tz_counts = clean_tz.value_counts()
tz_counts[:10]
二、数据清洗
先来看一下原始数据长什么样子:
我们的目标是对a列进行一个是否是windowns用户一个分析。
我们先来简单处理一下数据:
recodes = Series([x.split()[0] for x in frame.a.dropna()])
现在,为了简单方便起见。我们假定只要字符串中含有"Windows"就认为该用户为Windows用户,由于有的字符串缺失,所以首先将它们从数据中移除:
cframe = frame[frame.a.notnull()]
cframe
现在根据a值计算出各行是否是windows:
"""
#如果A%2==0成立,则执行A+1,否则执行A-1>>> Aarray([1, 7, 4, 9, 2, 3, 6, 0, 8, 5])>>> B = np.where(A%2 == 0, A+1, A-1) # 偶+1,奇-1"""
operating_system = np.where(cframe['a'].str.contains('Windows'), 'Windows', 'Not Windows')
现在来看看结果:
operating_system[:5]
# 接下来就可以根据时区和新得到的操作系统列表对数据进行分组了:
by_tz_os = cframe.groupby(['tz', operating_system])
agg_counts = by_tz_os.size().unstack().fillna(0)
这里是通过size对分组进行计数,并且利用unstack对计数结果实现重塑:
关于unstack函数可查看:
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
data=DataFrame(np.arange(6).reshape((2,3)),index=pd.Index(['street1','street2']),columns=pd.Index(['one','two','three']))
print(f'data={data}')
print('-----------------------------------------\n')
data2=data.stack()
data3=data2.unstack()
print(data2)
print('-----------------------------------------\n')
print(f'data3={data3}')
【python】列表元素统计相关推荐
- python列表元素统计ls_给定列表ls = [1, 2, 3, 1, 2, 3],其元素包含2种数据类型,哪个选项是列表ls的数据组织维度?...
[单选题]列表ls,哪个选项对ls.append(x)的描述是正确的? [单选题]哪个选项是下面代码的输出结果? d= {'a': 1, 'b': 2, 'b': '3'} print(d['b']) ...
- python列表元素都加倍_关于python列表增加元素的三种操作方法
关于python列表增加元素的三种操作方法 1.insert方法,该方法包含两个参数,第一个参数为插入的位置参数,第二个参数为插入内容 a = [0,0,0] b = [1,2,3] a.insert ...
- python列表元素如何求和
python实现列表对应元素求和的两种方法. 方法一:采用zip()方法: 1 2 3 4 5 6 7 8 9 10 11 12 # -*- coding: utf-8 -*- import math ...
- python列表元素零的移动_python列表多行
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这个列表推导式共有145列: memberdef_list = and std: ...
- python列表元素交换位置_python删除列表元素5种方法,你会的是错误法还是最优解?...
删除列表元素很多同学想当然的认为不就是循环遍历加上if判断再del吗?真的有这么简单吗? 还是直接上代码看案例吧: import time# 删除下面列表中所有张姓元素,输出的结果应该是['李老大', ...
- python列表元素之和_python实现计算列表元素之和
目标:定义一个数字列表,并计算列表元素之和. 例如: 输入 : [12, 15, 3, 10] 输出 : 40 方法一:total = 0 list1 = [11, 5, 17, 18, 23] fo ...
- python列表元素下标是什么_python列表中元素插入位置总结
python列表中元素插入位置总结 , python中列表去掉最后一个元素 ist.insert(index,obj) 列表与方法之间用点号相隔,括号内需要添入的参数分别是索引和要插入的元素. 要完成 ...
- python列表元素0的移动_【Python】列表元素零的移动
[Python]列表元素"零"的移动 描述 对于一个列表,在保持非零元素相对顺序的同时,将元素中所有的数字0移动到末尾. ...
- python列表元素替换的数据结构_列表是Python中的一种数据结构。列表元素无序。...
[综合练习]It has made the headlines that the president's wife threatened her husbands with public exposu ...
- python列表元素为中文_python入门基础教程之Python list列表修改元素
python提供了两种修改列表(list)元素的方法,你可以每次修改单个元素,也可以每次修改一组元素(多个). 修改单个元素 修改单个元素非常简单,直接对元素赋值即可.请看下面的例子: nums = ...
最新文章
- NAT穿透工具pwnat
- 正确、安全地停止springboot应用
- JS原生---鼠标拖拽
- 读配置文件能够保持顺序的 Java Properties 类
- EV3 直接命令 - 第 5 课 从 EV3 的传感器读取数据
- python xpath定位元素方法_Python爬虫杂记 - Xpath高级用法
- java查询数据库的方式_Java连接各种数据库方式速查表
- SpringCloud 从菜鸟到大牛之九 服务跟踪 spring CLoud sleuth + Zikpin
- Shiro(二)通过shiro实现登录 连接数据库+集成Springboot
- lucene域的各种类型
- 全向轮移动机器人构型分析
- firewalld--centos7.x的防火墙--使用流程步骤:
- docker搭建sftp服务器
- discuz论坛引入iframe
- nRF24L01无线模块笔记
- Linux命令:grep -v grep的作用 使用场景
- Linux系统学习环境搭建 - 跟小智一起学网络(3)
- 50道C/C++编程练习题 复习必备(1-10)
- 苹果原壁纸高清_ios14.2壁纸原图高清分享:苹果ios14.2壁纸高清无水印[多图]
- 查看linux设备Ran的大小,linux – 来自/ dev / zero和/ dev / urandom的不同文件大小