机器学习-数据科学库(第五天)
31.数据的合并和分组聚合——字符串离散化的案例
字符串离散化的案例
刚刚我们学会了数据分合并,那么接下来,我们按照电影分类(genre)信息把数据呈现出来
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
file_path = "/Users/zhucan/Desktop/IMDB-Movie-Data.csv"
df = pd.read_csv(file_path)temp_list = df["Genre"].str.split(",").tolist()
genre_list = list(set([i for j in temp_list for i in j]))#构造全为0的数组
zeros_df = pd.DataFrame(np.zeros((df.shape[0],len(genre_list))),columns=genre_list)
print(zeros_df)#给每个电影出现分类的位置赋值1
for i in range(df.shape[0]):zeros_df.loc[i,temp_list[i]] = 1#统计每个分类的电影的数量和
genre_count = zeros_df.sum(axis=0)
print(genre_count)genre_count = genre_count.sort_values()
_x = genre_count.index
_y = genre_count.valuesplt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(_x)),_y)
plt.xticks(range(len(_x)),_x)
plt.show()
32.数据的合并和分组聚合——数据合并
数据合并之join
数据合并之merge
merge:按照指定的列把数据按照一定的方式合并到一起
默认的合并方式inner,交集
merge outer,并集,NaN补全
merge left,左边为准,NaN补全。merge right,右边为准,NaN补全
33.数据分组聚合
数据分组聚合
现在我们有一组关于全球星巴克店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份星巴克的数量的情况,那么应该怎么办?
import pandas as pd
import numpy as np
file_path = "/Users/zhucan/Desktop/starbucks_store_worldwide.csv"
df = pd.read_csv(file_path)
grouped = df.groupby(by="Country")country_count = grouped["Brand"].count()
print(country_count["US"])
print(country_count["CN"])
13608
2734
34.数据分组聚合02
数据分组聚合02
import pandas as pd
import numpy as np
file_path = "/Users/zhucan/Desktop/starbucks_store_worldwide.csv"
df = pd.read_csv(file_path)china_data = df[df["Country"] == "CN"]
grouped = china_data.groupby(by = "State/Province").count()["Brand"]
print(grouped)
分组和聚合
多条件分组
如果我们需要对国家和省份进行分组统计,应该怎么操作呢?
grouped = df.groupby(by=[df["Country"],df["State/Province"]])
很多时候我们只希望对获取分组之后的某一部分数据,或者说我们只希望对某几列数据进行分组,这个时候我们应该怎么办呢? 获取分组之后的某一部分数据:
df.groupby(by=["Country","State/Province"])["Country"].count()
对某几列数据进行分组:
df["Country"].groupby(by=[df["Country"],df["State/Province"]]).count()
观察结果,由于只选择了一列数据,所以结果是一个Series类型 如果我想返回一个DataFrame类型呢?
df[["Country"]].groupby(by=[df["Country"],df["State/Province"]]).count()
35.数据的索引学习
索引和复合索引
- 简单的索引操作: 获取index:df.index
- 指定index :df.index = ['x','y']
- 重新设置index : df.reindex(list("abcedf"))
- 指定某一列作为index :df.set_index("Country",drop=False) country作为索引
- 返回index的唯一值:df.set_index("Country").index.unique()
import pandas as pd
import numpy as np
a = pd.DataFrame({'a': range(7),'b': range(7, 0, -1),'c': ['one','one','one','two','two','two', 'two'],'d': list("hjklmno")})
print(a)
b = a.set_index(["c","d"])
print(b)
a b c d
0 0 7 one h
1 1 6 one j
2 2 5 one k
3 3 4 two l
4 4 3 two m
5 5 2 two n
6 6 1 two oa b
c d
one h 0 7j 1 6k 2 5
two l 3 4m 4 3n 5 2o 6 1
36.数据分组聚合练习和总结
Series复合索引
DataFrame复合索引
使用matplotlib呈现出店铺总数排名前10的国家
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
file_path ="/Users/zhucan/Desktop/starbucks_store_worldwide.csv"
df = pd.read_csv(file_path)data1 = df.groupby(by="Country").count()["Brand"].sort_values(ascending=False)[:10]
_x = data1.index
_y = data1.valuesplt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(_x)),_y)
plt.xticks(range(len(_x)),_x)
plt.show()
使用matplotlib呈现出每个中国每个城市的店铺数量
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib import font_manager
file_path ="/Users/zhucan/Desktop/starbucks_store_worldwide.csv"
my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
df = pd.read_csv(file_path)
df = df[df["Country"]=="CN"]data1 = df.groupby(by="City").count()["Brand"].sort_values(ascending=False)[:25]_x = data1.index
_y = data1.valuesplt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(_x)),_y,width=0.3,color="orange")
plt.xticks(range(len(_x)),_x,fontproperties=my_font)
plt.show()
现在我们有全球排名靠前的10000本书的数据,那么请统计一下下面几个问题:
- 不同年份书的数量
- 不同年份书的平均评分情况
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib import font_manager
file_path = "/Users/zhucan/Desktop/books.csv"
df = pd.read_csv(file_path)#不同年份书的数量
print(df.info())
data1 = df[pd.notnull(df["original_publication_year"])]
grouped = data1.groupby(by="original_publication_year").count()["title"]#不同年份书的平均评分情况
data1 = df[pd.notnull(df["original_publication_year"])]
grouped = data1["average_rating"].groupby(by=data1["original_publication_year"]).mean()_x = grouped.index
_y = grouped.valuesplt.figure(figsize=(20,8),dpi=80)
plt.plot(range(len(_x)),_y)
plt.xticks(list(range(len(_x)))[::10],_x[::10],rotation=45)
plt.show()
机器学习-数据科学库(第五天)相关推荐
- 机器学习-数据科学库-day6
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 机器学习-数据科学库-day6 pandas学习 动手练习 pandas中的时间序列 生成一段时间范围 关于频率的更多缩写 在Data ...
- 机器学习-数据科学库-day5
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 机器学习-数据科学库-day5 pandas学习 pandas之DataFrame pandas常用统计方法 将字符串离散化 数据合并 ...
- 机器学习-数据科学库-day1
机器学习-数据科学库-day1 机器学习-数据科学库-day1 matplotlib 机器学习-数据科学库-day1 数据分析课程包括: 基础概念与环境 matplotlib numpy pandas ...
- 机器学习-数据科学库:matplotlib绘图
机器学习-数据科学库:matplotlib绘图 matplotlib绘图 matplotlib折线图 matplotlib散点图 matplotlib条形图 matplotlib直方图 对比常用统计图 ...
- 机器学习-数据科学库:Pandas总结(1)
机器学习-数据科学库:Pandas总结(1) Pandas pandas的常用数据类型 pandas之Series创建 pandas之Series切片和索引 pandas之读取外部数据 pandas之 ...
- HuaPu在学:机器学习——数据科学库【matplotlib】
数据科学库[matplotlib] 文章目录 数据科学库[matplotlib] 前言 一.数据分析介绍及环境安装 1.为什么要数据分析??? 2.环境安装 二.matplotlib 1.为什么学习m ...
- 机器学习-数据科学库(第三天)
14.numpy的数组的创建 什么是numpy 一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型.多维数组上执行数值运算(数组就是列表.列表 ...
- 机器学习-数据科学库(第2节)
文章目录 一.常用统计图对比 二.绘制散点图 三.绘制条形图 1.要点 2.代码样例 3.绘制多次条形图 四.绘制直方图 五.matplotlib使用的流程总结 六.其他绘图工具 一.常用统计图对比 ...
- 机器学习-数据科学库(第六天)
37.pandas时间序列01 现在我们有2015到2017年25万条911的紧急电话的数据,请统计出出这些数据中不同类型的紧急情况的次数,如果我们还想统计出不同月份不同类型紧急电话的次数的变化情况, ...
最新文章
- 笔记本电脑无线被禁用 是哪个服务器,无线网关,小编教你笔记本无线网络禁用后怎么开启...
- 液晶模块 LM6063A接口转接
- OpenCart之商品管理教程
- 面向对象的编程学习笔记
- 3.获得单应矩阵(每张图片需要m个棋盘格角点,m≥4)
- 《Java 核心技术卷1 第10版》学习笔记 ------ 泛型【进阶】
- html页面关闭执行函数,html页面调用js文件里的函数报错--方法名 is not defined处理方法...
- selenium+webdriver+java(基本小例子及初始化三种浏览器)---------------
- C++primer 7.4节练习
- 毕设过程小记—同步带传动选型计算+张紧机构
- 125w短波通信距离_陕西烽火通信短波及超短波产品.doc
- Wei Yang Bryan Lim, etc. Federated Learning in Mobile Edge Networks: A Comprehensive Survey.
- IDEA相对路径没有效果的问题
- matlab里peaks,MATLAB中peaks函數的用法
- 计算机基础内容相关的论文,有关于计算机基础论文范文
- freemarker导出excel
- 游戏挂机时计算机设置在哪里,电脑挂机锁如何设置 电脑挂机锁设置方法【图文】...
- 今日头条面试——iOS开发面试题
- 推荐一组用过好几年的非常稳定的dns
- Bezier曲线原理及实现代码(c++)
热门文章
- nginx 集群部署_如何备份和还原您的Kubernetes集群资源和持久卷?
- wpf项目源代码_C# WPF开源控件库:MahApps.Metro
- 栈空间不够会报错吗_网站更换域名和空间会对优化有影响吗?
- python判断一个或者多个字符串,是否出现在一段话中
- 目标层准则层MATLAB,层次分析法-MATLAB
- C++中的逻辑操作符重载
- 广州那所大学有自考计算机专业,广州自考本科大学有哪些
- cmd运行python服务器,python如何利用paramiko执行服务器命令
- bash 判断 os 版本_鸿蒙OS手机将至,华为手机用户提问,老款机器能升级吗?
- PyTorch中的数据输入和预处理