【博学谷学习记录】超强总结,用心分享 | pandas基础

 #博学谷IT技术支持#

一、pandas基本介绍

  • pandas是python的一个第三方包,也是最流行的结构化数据工具集。
  • pandas适用于数据量大且都是单机数据。
  • 在大数据ETL数据仓库中对数据进行清洗及处理的环节使用。

二、安装pandas库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pandas

三、pandas数据结构

  •  DataFrame
    • Series
      • 索引列
        • 索引名、索引值
        • 索引下标、行号
      • 数据列
        • 列名
        • 列值、具体数据

 3.1 series对象

类似一维数组

  • values:一组数据
  • index:相关的数据索引标签,如果没有指定会自动创建一个0到N-1长度的整数索引
s1 = pd.Series([1, 2, 3], index=['A', 'B', 'C'])
s2 = pd.Series([i for i in range(6)], index=[i for i in 'ABCDEF'])

3.2 DataFrame对象

3.2.1 写文件

# 导包 加载数据集
import pandas as pd 
# 构造df数据集
df = pd.DataFrame(
    [
        ['1960-5-7', '刘海柱', '职业法师'],
        ['1978-9-1', '赵金龙', '大力哥'],
        ['1984-12-27', '周立齐', '窃格瓦拉'],
        ['1969-1-24', '于谦', '相声皇后']
    ], 
    columns=['birthday', 'name', 'AKA']
)
df

df.to_csv('./写文件.csv') # 此时应该在运行代码的相同路径下就生成了一个名为“写文件.csv”的文件

3.2.2 读文件

df = pd.read_csv('./写文件.csv')
df

3.2.3 读写数据库

pip install pymysql==1.0.2
# 如果后边的代码运行提示找不到sqlalchemy的包,和pymysql一样进行安装即可
pip install sqlalchemy==1.4.31
# 需要安装pymysql,部分版本需要额外安装sqlalchemy
# 导入sqlalchemy的数据库引擎
from sqlalchemy import create_engine

# 创建数据库引擎,传入uri规则的字符串
engine = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/test?charset=utf8')
# mysql+pymysql://root:chuanzhi@127.0.0.1:3306/test?charset=utf8
# mysql 表示数据库类型
# pymysql 表示python操作数据库的包
# root:chuanzhi 表示数据库的账号和密码,用冒号连接
# 127.0.0.1:3306/test 表示数据库的ip和端口,以及名叫test的数据库
# charset=utf8 规定编码格式

# df.to_sql()方法将df数据快速写入数据库
df.to_sql('test_pdtosql', engine, index=False, if_exists='append')
# 第一个参数为数据表的名称
# 第二个参数engine为数据库交互引擎
# index=False 表示不添加自增主键
# if_exists='append' 表示如果表存在就添加,表不存在就创建表并写入

四、DataFrame数据分组

4.1 基于一列或多列

  • 取出每组第一条或最后一条数据
# 导包 加载数据集
import pandas as pd 
df = pd.read_csv('../数据集/uniqlo.csv')

# 基于顾客性别、不同城市分组
gs2 = df.groupby(['gender_group', 'city'])
gs2
# 返回结果如下
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001B1DB24F1F0>

gs2 = df.groupby(['gender_group', 'channel'])
gs2.first() # 取出每组第一条数据
gs2.last() # 取出每组最后一条数据

4.2 分组聚合

  • 按城市和线上线下划分,分别计算销售额的平均值、成本的总和
df.groupby(['列名1', '列名2']).agg({
    '指定列1':'聚合函数名', 
    '指定列2':'聚合函数名', 
    '指定列3':'聚合函数名'
})

df.groupby(['city', 'channel']).agg({
    'revenue':'mean', 
    'unit_cost':'sum'
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值