python数据分析练习——姓名分析US_Baby_names_right.csv

第一步:导入相关模块

import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

第二步:加载dataset目录下US_Baby_names_right.csv文件数据并查看数据的基本信息

data = pd.read_csv('dataset/US_Baby_names_right.csv')
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1016395 entries, 0 to 1016394
Data columns (total 7 columns):
 #   Column      Non-Null Count    Dtype 
---  ------      --------------    ----- 
 0   Unnamed: 0  1016395 non-null  int64 
 1   Id          1016395 non-null  int64 
 2   Name        1016395 non-null  object
 3   Year        1016395 non-null  int64 
 4   Gender      1016395 non-null  object
 5   State       1016395 non-null  object
 6   Count       1016395 non-null  int64 
dtypes: int64(4), object(3)
memory usage: 54.3+ MB

第三步:查看前十行数据

data.head(10)
Unnamed: 0IdNameYearGenderStateCount
01134911350Emma2004FAK62
11135011351Madison2004FAK48
21135111352Hannah2004FAK46
31135211353Grace2004FAK44
41135311354Emily2004FAK41
51135411355Abigail2004FAK37
61135511356Olivia2004FAK33
71135611357Isabella2004FAK30
81135711358Alyssa2004FAK29
91135811359Sophia2004FAK28

数据注释:

  1. Name 名字
  2. Year 婴儿出生的名字
  3. Gender 婴儿性别
  4. State 婴儿出生的地区缩写
  5. Count 该名字被使用的次数

第三步:删除 Unname:0和Id这两列数据

del data['Unnamed: 0']
del data['Id']
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1016395 entries, 0 to 1016394
Data columns (total 5 columns):
 #   Column  Non-Null Count    Dtype 
---  ------  --------------    ----- 
 0   Name    1016395 non-null  object
 1   Year    1016395 non-null  int64 
 2   Gender  1016395 non-null  object
 3   State   1016395 non-null  object
 4   Count   1016395 non-null  int64 
dtypes: int64(2), object(3)
memory usage: 38.8+ MB

第四步:统计数据集中男孩名字和女孩名字各是多少。

data['Gender'].value_counts()
F    558846
M    457549
Name: Gender, dtype: int64

第五步:按照Name字段将数据集进行分组并求和赋值给变量names,最后输出前五行

names = data.groupby('Name')['Year','Count'].sum()
names.head()
YearCount
Name
Aaban402712
Aadan803923
Aadarsh20095
Aaden3939633426
Aadhav20146

第六步:按照每个名字被使用的次数(Count)对第五步中结果进行降序排序,得出最受欢迎的的五个名字

names.sort_values(['Count'], ascending=False).head(5)
YearCount
Name
Jacob1141099242874
Emma1137085214852
Michael1161152214405
Ethan1139091209277
Isabella1137090204798

第七步:在数据集中,共出现了多少个名字?(不包含重复项)

data['Name'].nunique()
17632

第八步:根据names变量中的数据,删除掉Year列数据后,得出如下所示的基本统计参数

del names['Year']
names.describe()
Count
count17632.000000
mean2008.932169
std11006.069468
min5.000000
25%11.000000
50%49.000000
75%337.000000
max242874.000000
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泤燃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值