欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-30 08:17:23
第一步:导入相关模块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

数据注释:

  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()
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