python人名最多数统计_《利用Python进行数据分析》-全美婴儿姓名案例
知识点
在全美婴儿名字案例中,使用到的方法有:
按照sex分组按照births属性求和:groupby("sex").births.sum()
concat()用法:第一个参数以列表形式添加
pivot_table透视表制作
image.png
直接添加某列属性diff:group['diff']=group['M] - group['F']
apply()用法
查看DF数据信息:info()
不同方式绘制可视图:
image.png
image.png
查看DF数据框中的所有信息value,除去索引和属性
累计求和:cumsum()
归一化后寻找某个分界点的位置:searchsorted(0.5)
对df中的name属性使用func函数:df.name.map(func)
归一化处理:df/df.sum()
挑选不重复元素:unique()
字符串转化:str.lower():一定还要带上str
字符串中是否包含:str.contains()
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 创建数据指定列属性
data = pd.read_csv(r'D:\Python\datalearning\利用Python进行数据分析\pydata-book\datasets\babynames\yob1880.txt',
names=['name', 'sex', 'births'])
data.head()
image.png
# groupby使用:通过指定一个属性来求另一个的和
data.groupby('sex').births.sum()
image.png
# 同一个路径下面,多个TXT文件合并封装到一个DF里面
years = range(1880, 2011)
pieces = []
columns = ['name', 'sex', 'births']
for year in years:
path = r'D:\Python\datalearning\利用Python进行数据分析\pydata-book\datasets\babynames\yob{}.txt'.format(year)
frame = pd.read_csv(path, names=columns)
# 增加一列数据,属性是year;frame['year']中的
frame['year'] = year
pieces.append(frame)
# concat方法:默认按行组合,加上ignore_index=True取消原始行号
# concat 第一个参数必须是序列或者S或者DF数据,并且是列表的形式
# 上面将所有的frame放进pieces中
names = pd.concat(pieces, ignore_index=True)
image.png
数据透视pivot_table
total_births = names.pivot_table('births', index='year', columns='sex', aggfunc=sum)
total_births.head()
image.png
增加一列数据
# prop列相当于是指定名字相对于总出生数的比例
def add_group(group):
group['prop'] = group.births / group.births.sum()
return group
# 先分组,再利用函数求比例
names = names.groupby(['year', 'sex']).apply(add_group)
names.groupby(['year', 'sex']).prop.sum().head()
image.png
image.png
# DIY模式
pieces = []
for year, group in grouped:
pieces.append(group.sort_values(by='births', ascending=False)[:1000])
top1000 = pd.concat(pieces, ignore_index=True)
分析命名趋势
image.png
# 挑选出4个名字
subset = total_births[['John', 'Harry', 'Mary', 'Marilyn']]
subset.head()
# 绘图
subset.plot(subplots=True, figsize=(12, 10), grid=False,
title="Number of births per year")
image.png
计算最流行的1000个名字的比例,按照year和sex聚合并绘图
table = top1000.pivot_table("prop", index='year',
columns='sex', aggfunc=sum)
table.plot(title='Sum of table1000.prop by year and sex',
yticks=np.linspace(0, 1.2, 13), xticks=range(1880, 2020, 10))
image.png
# 统计2010年男孩的名字;prop的降序排列
df = boys[boys.year == 2010]
df.head(20)
# prop降序之后,通过累计求和,找出哪些名字加起来等于0.5
# cumsum()累计求和
prop_cumsum = df.sort_values(by='prop', ascending=False).prop.cumsum()
prop_cumsum[:10]
image.png
diversity = top1000.groupby(['year', 'sex']).apply(get_quantile_count)
diversity = diversity.unstack('sex')
image.png
最后一个字母的变革
# 定义一个lambda函数,得到最后一个字母
get_last_letter = lambda x: x[-1]
# 通过map函数将上面的lambda应用在其中
last_letters = names.name.map(get_last_letter)
# 给last_letters命名为last_letter
last_letters.name = 'last_letter'
table = names.pivot_table('births', index=last_letters,
columns=['sex', 'year'], aggfunc=sum)
# 归一化处理
letter_prop = subtable / subtable.sum()
letter_prop
fig, axes = plt.subplots(2,1,figsize=(10 ,8))
letter_prop['M'].plot(kind='bar', rot=0, ax=axes[0], title='Male')
letter_prop['F'].plot(kind='bar', rot=0, ax=axes[1], title='Female',legend=False)
image.png
image.png
image.png
男孩名字变成女孩名字
# unique找出所有不重复的名字
all_names = pd.Series(top1000.name.unique())
# 先把名字变成小写,再看是否包含lesl
lesley_like = all_names[all_names.str.lower().str.contains('lesl')]
# 通过isin来过滤其他名字
filtered = top1000[top1000.name.isin(lesley_like)]
# 通过name属性来分组,再选择根据births属性来统计求和
filtered.groupby('name').births.sum()
image.png
# 按照性别和年度进行聚合,年度进行规范化处理
table = filtered.pivot_table("births", index='year',
columns='sex', aggfunc='sum')
table = table.div(table.sum(1), axis=0)
table.tail()
image.png
python人名最多数统计_《利用Python进行数据分析》-全美婴儿姓名案例相关推荐
- python获取指定端口流量_利用python获取nginx服务的ip以及流量统计信息
#!/usr/bin/python #coding=utf8 log_file = "/usr/local/nginx/logs/access.log" with open(log ...
- 利用python进行词频统计_利用python做词频计算(word-count)
主要针对英文文本做出词频计算,因为英文是用空格作为词语分割的.中文需要用到分词的库. 下面就用奥巴马的一片演讲做词频计算 1,分析的文本 speech_etxt = ''' My fellow cit ...
- python输入数组并计算_利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- python画一颗心_利用python画一颗心的方法示例
前言 Python一般使用Matplotlib制作统计图形,用它自己的说法是'让简单的事情简单,让复杂的事情变得可能'.用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统 ...
- 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...
数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...
- python经纬度获取县名_利用 Python 批量获取县镇运输距离
起因 最近做规划项目,领导让查出某几个市的所有乡镇级行政区域,距离所在县级行政中心的交通运输距离.想着也不是啥难事儿,高德地图一搜就有. 当我把各市行政区划统计完,发现一共有五百多个乡镇,意味着要在地 ...
- python对excel数据统计_用 python实现简单EXCEL数据统计
原博文 2016-11-24 23:06 − 任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlr ...
- python用户输入列表有缺陷_利用Python对Jira缺陷进行管理操作
转自:51testing 1.1.概要 本文主要内容是教大家学习如何利用Python对Jira缺陷进行管理操作. 在平时的测试中,大家对于缺陷管理平台一定不陌生,平时的缺陷都要去平台进行操作.今天我们 ...
- python怎么读取sav格式_利用Python读取外部数据文件
利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...
- python怎么去掉视频字幕_利用Python实现字幕挂载(把字幕文件与视频合并)思路详解...
其实超简单超简单!python好现成的库,一下子省略了好多步骤! 本文在Windows环境下!linux只是不需要手动输入imagicmagick的位置! 需要用到的环境 python(基本上只要不是 ...
最新文章
- 给动态生成的按钮添加ajax,Ajax/Javascript动态创建按钮的问题
- mysql 物理备份工具_mysql物理备份工具Xtrabackup安装配置
- 有关FPGA比较好的文章收藏(备忘)
- 先睹为快:Visual Studio 11测试版已于2.29在微软官方网站正式发布
- Django值应用和分布式路由
- 无锁数据结构三:无锁数据结构的两大问题
- 系统背景描述_【计算机论文】管件加工管理系统和数据库的结构探析
- java中线程调度遵循的原则_深入理解Java多线程核心知识:跳槽面试必备
- 3dmax批量导入obj_ArcGIS 与 3DMax 结合建模
- c ++ stl_获取列表的第一个和最后一个元素| C ++ STL
- Mysql主从占用大量cpu_Mysql占用过高CPU时的优化手段
- 通过PS修出自然的大长腿
- IOS实现SpotLight搜索 让你的APP支持SpotLight搜索
- cytoscape使用方法_Cytoscape的使用方法(带图片解析)
- Marvell 88E1111 百兆工程 (FPGA)
- react基础_React基础
- EtherCAT运动控制器在数控加工手轮随动中的应用之C++
- File Struct 上传JPG格式图片变成tmp 服务器上传文件名字随机起
- 从什么地方获取大数据_在哪里找大数据
- 不得不说!这个让我受益良多的思维利器!
热门文章
- MyBatis中拦截器(Interceptor)实现原理分析
- java并发-独占锁与共享锁
- bzoj3453: tyvj 1858 XLkxc(拉格朗日插值)
- 《逻辑与计算机设计基础(原书第5版)》——1.4 算术运算
- 《UNIXLinux程序设计教程》一1.3 UNIX基本概念
- 《深入理解OSGi:Equinox原理、应用与最佳实践》一2.1 OSGi规范概要
- CentOS7源码安装Python3
- Zipkin-1.19.0学习系列2:Nodejs范例(Client Send,Client Receive))
- Spring任务调度实战之Quartz Simple Trigger
- 热点聚焦:企业上ERP之前是否需要先进行流程梳理?