第一步:导入相关模块
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