python-pandas练习

US_Baby_Names_right.csv文件中存储了美国小孩的姓名, 出生年份, 性别, 所在州及名称出现次数, 试实现以下统计分析:
1). 删除 [Unname: 0] 列 和 [id]列;
2). 判断出数据集中 男孩名字、女孩名字谁多;
3). 根据题目2,绘制扇形图统计男孩名字和女孩名字分别占总名称的百分比;
4). 按照 【Name】列将数据集进行分组并求和, 效果如下:
Year Count
Name
Aaban 4027 12
Aaadan 8039 23
…后面省略

5). 根据题目4, 以列【Count】的值对DataFrame降序排序,查看前5条数据, 并绘制柱状图显示;

6). 统计出现次数最少的名字共有几个 ? (运行结果应该为2578)

1). 删除 [Unname: 0] 列 和 [id]列;

import pandas as pd                                                        
import numpy as np                                                         
                                                                           
data=pd.read_csv('US_Baby_Names_right.csv')                                
datadel=data.drop(['Unnamed: 0','Id'],axis=1)                              
print(datadel)        

在这里插入图片描述

2). 判断出数据集中 男孩名字、女孩名字谁多;

datacount = data.groupby(['Gender']).count()                               
# print(datacount)                                                         
print(datacount['Unnamed: 0'])  

在这里插入图片描述

3). 根据题目2,绘制扇形图统计男孩名字和女孩名字分别占总名称的百分比;

gender = datacount['Unnamed: 0']                                           
attr = ['male','female']                                                   
from pyecharts import Pie                                                  
pie = Pie('扇形图')                                                           
pie.add('性别',attr,gender,is_label_show=True)                               
pie.render()            

在这里插入图片描述

4). 按照 【Name】列将数据集进行分组并求和, 效果如下:

Year Count
Name
Aaban 4027 12
Aaadan 8039 23
…后面省略

df = datadel.groupby(datadel['Name'])
print(df.sum())

在这里插入图片描述

5). 根据题目4, 以列【Count】的值对DataFrame降序排序,查看前5条数据, 并绘制柱状图显示;

count = datadf.sort_values(by="Count",ascending=False).head()
x_index = count.index
y_count = count['Count']
bar = Bar(title='名字出现次数统计条形图')
bar.add("名字",x_index,y_count,bar_category_gap="10%")
bar.render()

在这里插入图片描述

6). 统计出现次数最少的名字共有几个 ? (运行结果应该为2578)

df = datadel.groupby(datadel['Name'])
datadf =df.sum()
count = datadf.sort_values(by="Count")
mincount = count[count['Count'] ==5]
print(mincount.shape[0])

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43067754/article/details/87981507