Pandas快速体验,体验python数据分析的便利


通过一个小案例来快速体验Pandas

1. Pandas数据结构

在 Pandas 库中,Series 和 DataFrame 是两个最核心的数据结构。它们的关系可以简单理解为:DataFrame 是由多个 Series 组成的。

让我用一个形象的比喻来解释:

  • Series → 就像 Excel 中的一列数据

  • DataFrame → 就像整个 Excel 表格,包含多列数据

什么是 Series?
Series 是一个一维的、带有标签的数组结构,可以存储任何数据类型(整数、字符串、浮点数、Python对象等)。

关键特点:
一维结构:只有一行数据(但有多列?不,它只有一"列"概念)
Series既可以表示一行,也可以表示一列,这完全取决于上下文。但最常用、最自然的方式是将Series看作DataFrame中的一列。

什么是 DataFrame?
DataFrame 是一个二维的、表格型的数据结构,可以看作是由多个 Series 组成的字典(每个 Series 是一列)。
关键特点:
二维结构:有行和列
带有行索引和列名:既有行标签也有列标签
异构数据:不同的列可以是不同的数据类型
大小可变:可以动态添加/删除行列
带有索引:每个元素都有一个对应的标签(索引)
同构数据:通常所有元素是相同的数据类型(但不是强制要求)

2. 准备数据集

数据说明:历年各国gdp数据
数据资源已放置文章顶端,可点击下载

3. 数据分析

本演示基于Anaconda 数据分析平台,代码编写及效果呈现都使用 Jupyter Notebook

  • 查看当前文件路径
 import os
os.getcwd()

在这里插入图片描述

3.1 数据展示

  • 导包并加载数据
import pandas as pd
# 我的数据文件放置在当前项目下jupyterdata下
df = pd.read_csv('./juyperdata/1960-2019全球GDP数据.csv', encoding='gbk', )  
df # 显示全部数据

在这里插入图片描述

  • 查询中国的GDP
china_gdp = df[df.country=='中国'] # df.country 选中名为country的列
china_gdp.head(10) # 显示前10条数据

在这里插入图片描述

  • 将year年份设为索引
china_gdp = china_gdp.set_index('year')
china_gdp.head() # 默认显示前5条

在这里插入图片描述

3.2 图表展示

  • 画出GDP逐年变化的曲线图
china_gdp.GDP.plot()

在这里插入图片描述

  • 使用同样的方法画出日本的GDP变化曲线,和中国的GDP变化曲线进行对比
jp_gdp = df[df.country=='日本'].set_index('year') # 按条件选取数据后,重设索引
jp_gdp.GDP.plot() 
china_gdp.GDP.plot()

在这里插入图片描述

3.3 复杂图标展示

对比中美日三国GDP变化曲线

  • 分别查询中国、美国、日本三国的GDP数据,并绘制GDP变化曲线、进行对比
china_gdp = df[df.country=='中国'].set_index('year')
us_gdp = df[df.country=='美国'].set_index('year')
jp_gdp = df[df.country=='日本'].set_index('year')
jp_gdp.GDP.plot()
china_gdp.GDP.plot()
us_gdp.GDP.plot()

在这里插入图片描述

  • 设置图例
# 按条件选取数据
china_gdp = df[df.country=='中国'].set_index('year')
us_gdp = df[df.country=='美国'].set_index('year')
jp_gdp = df[df.country=='日本'].set_index('year')
# 出图并添加图例
jp_gdp.GDP.plot(legend=True)
china_gdp.GDP.plot(legend=True)
us_gdp.GDP.plot(legend=True)

在这里插入图片描述

  • 修改列名使图例显示为各国名称
# 按条件选取数据
china_gdp = df[df.country=='中国'].set_index('year')
us_gdp = df[df.country=='美国'].set_index('year')
jp_gdp = df[df.country=='日本'].set_index('year')
# 对指定的列修改列名
jp_gdp.rename(columns={'GDP':'日本'}, inplace=True)
china_gdp.rename(columns={'GDP':'中国'}, inplace=True)
us_gdp.rename(columns={'GDP':'美国'}, inplace=True)
# 画图
jp_gdp.japan.plot(legend=True)
china_gdp.china.plot(legend=True)
us_gdp.usa.plot(legend=True)

在这里插入图片描述
此刻我们发现名称显示不出来,这是因为中文问题,我们需要解决名称问题

3.4 解决中文显示问题

import matplotlib as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
  1. Matplotlib 的默认行为
    Matplotlib 默认使用英文字体
    当遇到中文字符时,由于默认字体不包含中文字形,会显示为方块(□)或乱码
  2. 字体回退机制
    设置 [‘SimHei’] 告诉 Matplotlib:
    首先尝试使用 SimHei(黑体)显示所有字符
    如果某些字符在黑体中不存在,会回退到其他字体
    由于黑体是完整的中文字体,能够正确显示中文

运行以上代码片段后,重新运行上面图表代码:修改列名使图例显示为各国名称、
在这里插入图片描述
显示可以正常显示了。
本文简单的进行了演示,如需了解更多知识,请查看专栏

在这里插入图片描述

如果有帮助到你,请点赞收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chad__chang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值