《深入浅出Pandas:利用Python进行数据处理与分析》——第1部分 Pandas入门

书籍资料:《深入浅出Pandas:利用Python进行数据处理与分析》
书籍数据集:
https://www.gairuo.com/file/data/dataset/team.xlsx
https://www.gairuo.com/file/data/dataset/sample-salesv3.xlsx
https://www.gairuo.com/file/data/dataset/GDP-China.csv
https://www.gairuo.com/file/data/dataset/countries-aggregated.csv
https://www.gairuo.com/file/data/dataset/iris.data

1.快速入门

pandas支持数据读取、查看、查找【筛选】、分组聚合、数学统计、可视化【GET,这点之前忽略了】、输出导出等。练习练习,沉住气,虽然这部分已经非常熟练了。

# %%
# 《深入浅出Pandas:利用Python进行数据处理与分析》配套数据集
data_urls = """
https://www.gairuo.com/file/data/dataset/team.xlsx
https://www.gairuo.com/file/data/dataset/sample-salesv3.xlsx
https://www.gairuo.com/file/data/dataset/GDP-China.csv
https://www.gairuo.com/file/data/dataset/countries-aggregated.csv
https://www.gairuo.com/file/data/dataset/iris.data
"""

# %%
# 下载数据集
import os
data_dir = './datasets/'
for url in data_urls.split():
    os.system(f"wget -O {data_dir}/{url.rsplit('/')[-1]} {url}")

# %%
# 初步认识数据
import pandas as pd
df = pd.read_excel(os.path.join(data_dir,'team.xlsx'))  # 读取数据,xlsx读取可能会缺依赖,根据提示conda或pip安装
n = 3  # 准备查看的数据量
df.head(n)  # 查看前n条

# %%
df.tail(n)  # 尾部n条

# %%
df.sample(n)  # 随机三条

# %%
df.shape, df.dtypes, df.axes, df.columns  # 分布为数据行列数、各字段数据类型、行列名、列名

# %%
df.info()  # 数据的一些基本信息

# %%
df.describe()  # 数据的数学统计信息:

# %%
df.set_index('name', inplace=True)  # 将字段"name"建立为索引,inplace表示原表修改,pandas常用参数
df 

# %%
# 列选择
df['Q1']  # 选择'Q1'列, 列选择方法
# or
df.Q1  # 需注意的是,当字段名Q1包含一些特殊字符,比如空格、:时,此方法失效
df[['Q1','Q2']]  # 多列选择,此方法也可以用于交换不同列的顺序

# %%
# 行选择
df[df.index=='Ack']  # 前面已经将name字段标记为索引
# 支持分片,类似列表
df[:10]  # 前10行

# %%
# 图,可视化
df.Q1.plot()

# %%
# 饼图
df.loc['Ben','Q1':'Q4'].plot.pie()

# %%
# 排序
df.sort_values(['Q1', 'Q2'], ascending=[False, True])  # 可单列,也可以多列排序

# %%
# 分组聚合
df.groupby(by='team').sum()
# 转置
df.groupby(by='team').sum()

# %%
df['total'] = df.apply(lambda x:sum(x['Q1':'Q4']), axis=1)  # axis= 0 表示对横轴,axis=1表示对纵轴方向 数据进行操作,这里有点绕,横轴方向数据操作表现为对列操作[横向为各个列数据],纵轴方向数据操作表现为对行操作[纵向为行数据]
df
# %%
df.mean(axis=0)  # axis默认为0,对横轴操作,返回各列的均值
df.mean(axis=1)   # 纵轴操作,返回各行的均值
# or
df.mean(1)

2.数据结构

数据结构:组织数据、存储数据的方式。
Python:Python数据类型,数字、字符、列表、元组、字典、集合等。【熟悉和精通之间】
Numpy:高性能矩阵运算的课,Pandas的依赖,掌握该部分内容不是学习pandas的先决条件。【后续学习,科学计算的重要库】。
Numpy数据结构:ndarray【存储数据的多维数组】、ufunc【处理数组的函数】
Pandas数据结构:Series【带标签的一维数组】、DataFrame【二维数据结构,矩阵,有行列名】,重要,pandas的基础。
数据创建:可以从列表、字典等方法生成series和DataFrame
常见数据类型

  • float,浮点型
  • int,整型
  • bool,布尔型
  • 几个时间日期的类型:
  • datetime64[ns]
  • datetime64[ns,tz]
  • timedelta64[ns]
  • timedelta64[ns]
    -category 【还未用过,盲区】
    -object
    -string

支持数据类型判断:

pd.api.types.is_bool_dtype(s)  # 布尔判断,此类的类型判断还有很多
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

raykingl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值