python数据分析练习——姓名分析US_Baby_names_right.csv
程序员文章站
2022-07-07 19:30:47
第一步:导入相关模块import pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号第二步:加载dataset目录下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: 0 | Id | Name | Year | Gender | State | Count | |
---|---|---|---|---|---|---|---|
0 | 11349 | 11350 | Emma | 2004 | F | AK | 62 |
1 | 11350 | 11351 | Madison | 2004 | F | AK | 48 |
2 | 11351 | 11352 | Hannah | 2004 | F | AK | 46 |
3 | 11352 | 11353 | Grace | 2004 | F | AK | 44 |
4 | 11353 | 11354 | Emily | 2004 | F | AK | 41 |
5 | 11354 | 11355 | Abigail | 2004 | F | AK | 37 |
6 | 11355 | 11356 | Olivia | 2004 | F | AK | 33 |
7 | 11356 | 11357 | Isabella | 2004 | F | AK | 30 |
8 | 11357 | 11358 | Alyssa | 2004 | F | AK | 29 |
9 | 11358 | 11359 | Sophia | 2004 | F | AK | 28 |
数据注释:
- Name 名字
- Year 婴儿出生的名字
- Gender 婴儿性别
- State 婴儿出生的地区缩写
- 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()
Year | Count | |
---|---|---|
Name | ||
Aaban | 4027 | 12 |
Aadan | 8039 | 23 |
Aadarsh | 2009 | 5 |
Aaden | 393963 | 3426 |
Aadhav | 2014 | 6 |
第六步:按照每个名字被使用的次数(Count)对第五步中结果进行降序排序,得出最受欢迎的的五个名字
names.sort_values(['Count'], ascending=False).head(5)
Year | Count | |
---|---|---|
Name | ||
Jacob | 1141099 | 242874 |
Emma | 1137085 | 214852 |
Michael | 1161152 | 214405 |
Ethan | 1139091 | 209277 |
Isabella | 1137090 | 204798 |
第七步:在数据集中,共出现了多少个名字?(不包含重复项)
data['Name'].nunique()
17632
第八步:根据names变量中的数据,删除掉Year列数据后,得出如下所示的基本统计参数
del names['Year']
names.describe()
Count | |
---|---|
count | 17632.000000 |
mean | 2008.932169 |
std | 11006.069468 |
min | 5.000000 |
25% | 11.000000 |
50% | 49.000000 |
75% | 337.000000 |
max | 242874.000000 |
本文地址:https://blog.csdn.net/qq_41754907/article/details/107165286