Pandas 进阶

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['STFangsong']
plt.rcParams['axes.unicode_minus'] = False
%config InlineBackend.figure_format = 'svg'

数据分析的一般流程

  1. 提取数据(筛选)

    • 布尔索引
    • query():相当于布尔索引
    • drop():删除指定的行或列
    • rename():重命名行或列索引
    • reset_index():重置索引(将索引变成普通列)
    • set_index():设置索引(将一个列或多个列指定为索引)
    • reindex():调整行或列索引的顺序(还可以做花式索引)
  2. 整合和重塑

    • merge():实现两个DataFrame对象的内连接或外连接(适用于两张表有关联)。
    • concat():将两个或多个DataFrame的数据拼接到一起(适用于多张表结构一致)。
  3. 数据清洗(缺失值、重复值、异常值)

    • 缺失值:

      • dropna():删除空值
      • fillna():填充空值 <— 均值、中位数、众数
      • isnull() / notnull():判断空值
    • 重复值:

      • duplicated():判断是否重复
      • drop_duplicates():删除重复值
    • 异常值:

      • 异常值 / 极端值 / 离群值
      • drop():删除
      • replace():替换
    • 预处理:

      • apply():将函数作用到数据上,需要指定在哪个轴上执行
      • transform():将(多个)函数作用到数据上
      • applymap():对每个元素使用指定的函数进行映射,相当于Series上的map()方法 —> elementwise

    注意:这三个方法都是高阶函数的用法,apply()方法接受的函数,可以是带归约性质的函数(聚合函数),也可以是没有归约性质的函数。transform()方法接受的函数不能是带归约功能的函数,只能是对数据做变换的函数,简单的说就是函数的执行不会减少数据的量。

  4. 数据透视(排序、分组、聚合)

    • 透视表:根据A统计B(根据A列对数据进行分组,再对B列上聚合函数)
    • groupby() —> sum() / mean() / max() / …
    • pivot_table() —> 专门生成透视表的函数
    • cut() —> 数据离散化(分箱)
  5. 数据可视化(统计图表)

  6. 数据的洞察(发现问题给出建议)

Example 1

df = pd.read_csv('../files/data/bilibili.csv',encoding = 'GBK')
df
title url watchnum dm uptime upname
0 阿里云大学课程(云计算、中间件、大数据、云安全) //www.bilibili.com/video/BV1Lv411s7wu?from=search 2954 4 2021/1/21 韭菜滚雪球
1 视觉传达设计专业的小朋友大学课程有哪些,强度怎么样,需要什么技能?学姐给新生的解答与建议 //www.bilibili.com/video/BV1Ea4y1a7CX?from=search 3526 8 2020/7/25 铧仔仔儿的奋斗史
2 CAP:适合高中生的大学课程(上大学之前提前学习大学的课程)同济大学《微积分CAP》 //www.bilibili.com/video/BV1X4411Y7u8?from=search 5597 17 2019/5/11 愚甘杂货铺
3 干货!论文读写系列|写作风格:例文解析(1)|人文社科|教育学|大学课程、知识 //www.bilibili.com/video/BV1VC4y1b7ZA?from=search 1.1万 29 2020/7/26 cici西西熙熙
4 《用户体验与心理-第1期》大学课程 //www.bilibili.com/video/BV1r7411M7gY?from=search 1373 9 2020/2/24 Luka老师
... ... ... ... ... ... ...
1902 【中国石油大学】构造地质学(第1-2章) ——主讲:李理老师 //www.bilibili.com/video/BV1Y4411x7sE?from=search 4097 5 2019/5/2 點點滴滴Super
1903 【模电】模拟电子技术基础【四】 //www.bilibili.com/video/BV1sb411v7E6?from=search 5997 11 2019/3/8 干脆的非洲鼓
1904 【模电】模拟电子技术基础【三】 //www.bilibili.com/video/BV1Rb411i7yo?from=search 4713 8 2019/3/5 干脆的非洲鼓
1905 结构化学-东北大学-王军 //www.bilibili.com/video/BV1yb411t7Mb?from=search 5835 2 2019/2/28 万万万万不能怂
1906 《结构化学》南开大学-孙宏伟 重点难点解析 //www.bilibili.com/video/BV1yt411t7UG?from=search 5287 6 2019/1/28 阿bu爱学习

1907 rows × 6 columns

def handle_num(n):
    if n[-1] == '万':
        return int(float(n[:-1]) * 10000)
    return int(n)

df['watchnum'] = df.watchnum.map(handle_num)
df['dm'] = df.dm.map(handle_num)
df
title url watchnum dm uptime upname
0 阿里云大学课程(云计算、中间件、大数据、云安全) //www.bilibili.com/video/BV1Lv411s7wu?from=search 2954 4 2021/1/21 韭菜滚雪球
1 视觉传达设计专业的小朋友大学课程有哪些,强度怎么样,需要什么技能?学姐给新生的解答与建议 //www.bilibili.com/video/BV1Ea4y1a7CX?from=search 3526 8 2020/7/25 铧仔仔儿的奋斗史
2 CAP:适合高中生的大学课程(上大学之前提前学习大学的课程)同济大学《微积分CAP》 //www.bilibili.com/video/BV1X4411Y7u8?from=search 5597 17 2019/5/11 愚甘杂货铺
3 干货!论文读写系列|写作风格:例文解析(1)|人文社科|教育学|大学课程、知识 //www.bilibili.com/video/BV1VC4y1b7ZA?from=search 11000 29 2020/7/26 cici西西熙熙
4 《用户体验与心理-第1期》大学课程 //www.bilibili.com/video/BV1r7411M7gY?from=search 1373 9 2020/2/24 Luka老师
... ... ... ... ... ... ...
1902 【中国石油大学】构造地质学(第1-2章) ——主讲:李理老师 //www.bilibili.com/video/BV1Y4411x7sE?from=search 4097 5 2019/5/2 點點滴滴Super
1903 【模电】模拟电子技术基础【四】 //www.bilibili.com/video/BV1sb411v7E6?from=search 5997 11 2019/3/8 干脆的非洲鼓
1904 【模电】模拟电子技术基础【三】 //www.bilibili.com/video/BV1Rb411i7yo?from=search 4713 8 2019/3/5 干脆的非洲鼓
1905 结构化学-东北大学-王军 //www.bilibili.com/video/BV1yb411t7Mb?from=search 5835 2 2019/2/28 万万万万不能怂
1906 《结构化学》南开大学-孙宏伟 重点难点解析 //www.bilibili.com/video/BV1yt411t7UG?from=search 5287 6 2019/1/28 阿bu爱学习

1907 rows × 6 columns

from datetime import datetime

# 将表中上传时间(字符串)转换为时间类型
# pd.to_datetime(字符串时间)
df['uptime'] = pd.to_datetime(df.uptime)
df.uptime   # dtype: datetime64[ns]
0      2021-01-21
1      2020-07-25
2      2019-05-11
3      2020-07-26
4      2020-02-24
          ...    
1902   2019-05-02
1903   2019-03-08
1904   2019-03-05
1905   2019-02-28
1906   2019-01-28
Name: uptime, Length: 1907, dtype: datetime64[ns]
df.uptime >= datetime(2021,1,1)   # 布尔数据系列
0        True
1       False
2       False
3       False
4       False
        ...  
1902    False
1903    False
1904    False
1905    False
1906    False
Name: uptime, Length: 1907, dtype: bool
[df.uptime >= datetime(2021,1,1)] # 布尔下标
temp = df[(df.uptime >= datetime(2021,1,1)) & (df.watchnum > 1000)]  #发布时间为2021年播放量大于1000的帖子
temp.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 92 entries, 0 to 1425
Data columns (total 6 columns):
 #   Column    Non-Null Count  Dtype         
---  ------    --------------  -----         
 0   title     92 non-null     object        
 1   url       92 non-null     object        
 2   watchnum  92 non-null     int64         
 3   dm        92 non-null     int64         
 4   uptime    92 non-null     datetime64[ns]
 5   upname    92 non-null     object        
dtypes: datetime64[ns](1), int64(2), object(3)
memory usage: 5.0+ KB
# 通过表达式筛选
# obj.query(筛选条件)
df.query('watchnum >= 1000 and uptime >="2021-1-1"').info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 92 entries, 0 to 1425
Data columns (total 6 columns):
 #   Column    Non-Null Count  Dtype         
---  ------    --------------  -----         
 0   title     92 non-null     object        
 1   url       92 non-null     object        
 2   watchnum  92 non-null     int64         
 3   dm        92 non-null     int64         
 4   uptime    92 non-null     datetime64[ns]
 5   upname    92 non-null     object        
dtypes: datetime64[ns](1), int64(2), object(3)
memory usage: 5.0+ KB
# 根据播放量排序
# obj.sort_values(by=[列1,列2...],ascending = True/False) 默认为True升序
temp.sort_values(by=['watchnum','dm'],ascending=False)
title url watchnum dm uptime upname
459 【公开课】复旦大学:资本论 王德峰(全28讲) //www.bilibili.com/video/BV1Vp4y1x7F9?from=search 1099000 4299 2021-01-19 农夫CC
486 【公开课】北京大学:中国经济 林毅夫(全12讲) //www.bilibili.com/video/BV1hK4y157dt?from=search 235000 561 2021-01-14 农夫CC
403 【公开课】温铁军:中国经济研究(8讲) //www.bilibili.com/video/BV1kp4y1W7u8?from=search 106000 523 2021-01-27 农夫CC
448 【公开课】温铁军:中国经济研究(8讲) //www.bilibili.com/video/BV1kp4y1W7u8?from=search 106000 523 2021-01-27 农夫CC
396 【公开课】加州大学洛杉矶分校:亲密关系(全17讲) //www.bilibili.com/video/BV1xU4y147hJ?from=search 65000 79 2021-01-21 农夫CC
... ... ... ... ... ... ...
811 【芝加哥大学】 理解全球经济 全11讲 //www.bilibili.com/video/BV1nr4y1M7Fd?from=search 1189 0 2021-01-24 学习党加油站
923 2021年小黑老师计算机二级最新考点----替换考点汇总 //www.bilibili.com/video/BV1UU4y1s7Tq?from=search 1173 0 2021-02-01 爱家伙的小学习
1220 编程课堂:按键的前世今生学不会,不存在的。 //www.bilibili.com/video/BV1nK4y1W7bU?from=search 1157 3 2021-01-12 三月课堂
20 【生活篇】UCLA本科生带你了解加州大学课程设置与毕业要求 //www.bilibili.com/video/BV1qt4y1r7Y3?from=search 1107 8 2021-01-09 未必存在的真理
1425 【文学批评的方法与实践】华中师范大学 胡亚敏(合6讲) //www.bilibili.com/video/BV1jr4y1M7Hd?from=search 1003 0 2021-01-27 语文教学助手

92 rows × 6 columns

temp1 = temp.drop(columns='upname')
temp1
title url watchnum dm uptime
0 阿里云大学课程(云计算、中间件、大数据、云安全) //www.bilibili.com/video/BV1Lv411s7wu?from=search 2954 4 2021-01-21
20 【生活篇】UCLA本科生带你了解加州大学课程设置与毕业要求 //www.bilibili.com/video/BV1qt4y1r7Y3?from=search 1107 8 2021-01-09
374 【公开课】南开大学:中华诗词 叶嘉莹(20讲) //www.bilibili.com/video/BV1Vo4y1d7Pe?from=search 4937 4 2021-02-10
384 【公开课】南开大学:中华诗词 叶嘉莹(20讲) //www.bilibili.com/video/BV1Vo4y1d7Pe?from=search 4937 4 2021-02-10
387 【公开课】启功:中华书法(全4讲) //www.bilibili.com/video/BV1FV411i7fV?from=search 9777 12 2021-02-11
... ... ... ... ... ...
1299 苏德矿教授谈如何学好微积分—矿爷在丹青有约2021.1.7直播 //www.bilibili.com/video/BV1dh41117yy?from=search 1196 0 2021-01-07
1412 【中英字幕】曼彻斯特大学Advanced Microeconomics 课程 //www.bilibili.com/video/BV1bX4y1K799?from=search 8429 2 2021-01-19
1417 《数字无线电系统基础》32讲-电子科技大学-陈祝明【通信专题】 //www.bilibili.com/video/BV1Ci4y1F7tU?from=search 3958 14 2021-01-05
1422 西安交通大学《电路》赵进全100讲 //www.bilibili.com/video/BV1Z54y1x7ZK?from=search 2205 3 2021-01-11
1425 【文学批评的方法与实践】华中师范大学 胡亚敏(合6讲) //www.bilibili.com/video/BV1jr4y1M7Hd?from=search 1003 0 2021-01-27

92 rows × 5 columns

# 判断是否存在重复值
# temp.duplicated('url')
# 去重
temp.drop_duplicates('url')
title url watchnum dm uptime upname
0 阿里云大学课程(云计算、中间件、大数据、云安全) //www.bilibili.com/video/BV1Lv411s7wu?from=search 2954 4 2021-01-21 韭菜滚雪球
20 【生活篇】UCLA本科生带你了解加州大学课程设置与毕业要求 //www.bilibili.com/video/BV1qt4y1r7Y3?from=search 1107 8 2021-01-09 未必存在的真理
374 【公开课】南开大学:中华诗词 叶嘉莹(20讲) //www.bilibili.com/video/BV1Vo4y1d7Pe?from=search 4937 4 2021-02-10 农夫CC
387 【公开课】启功:中华书法(全4讲) //www.bilibili.com/video/BV1FV411i7fV?from=search 9777 12 2021-02-11 农夫CC
392 所以你记住物价这个词了嘛! //www.bilibili.com/video/BV1f54y1Y7JY?from=search 2140 0 2021-02-25 大阪外語学院
... ... ... ... ... ... ...
1299 苏德矿教授谈如何学好微积分—矿爷在丹青有约2021.1.7直播 //www.bilibili.com/video/BV1dh41117yy?from=search 1196 0 2021-01-07 稳及阁大学士
1412 【中英字幕】曼彻斯特大学Advanced Microeconomics 课程 //www.bilibili.com/video/BV1bX4y1K799?from=search 8429 2 2021-01-19 杨浦区老实人
1417 《数字无线电系统基础》32讲-电子科技大学-陈祝明【通信专题】 //www.bilibili.com/video/BV1Ci4y1F7tU?from=search 3958 14 2021-01-05 成电电子科协
1422 西安交通大学《电路》赵进全100讲 //www.bilibili.com/video/BV1Z54y1x7ZK?from=search 2205 3 2021-01-11 物语终焉2021
1425 【文学批评的方法与实践】华中师范大学 胡亚敏(合6讲) //www.bilibili.com/video/BV1jr4y1M7Hd?from=search 1003 0 2021-01-27 语文教学助手

83 rows × 6 columns

def normalize_url(url):
    if not url.startswith('https'):
        return 'https:' + url
    return url
df['url'] = df['url'].apply(normalize_url)
df
title url watchnum dm uptime upname
0 阿里云大学课程(云计算、中间件、大数据、云安全) https://www.bilibili.com/video/BV1Lv411s7wu?fr... 2954 4 2021-01-21 韭菜滚雪球
1 视觉传达设计专业的小朋友大学课程有哪些,强度怎么样,需要什么技能?学姐给新生的解答与建议 https://www.bilibili.com/video/BV1Ea4y1a7CX?fr... 3526 8 2020-07-25 铧仔仔儿的奋斗史
2 CAP:适合高中生的大学课程(上大学之前提前学习大学的课程)同济大学《微积分CAP》 https://www.bilibili.com/video/BV1X4411Y7u8?fr... 5597 17 2019-05-11 愚甘杂货铺
3 干货!论文读写系列|写作风格:例文解析(1)|人文社科|教育学|大学课程、知识 https://www.bilibili.com/video/BV1VC4y1b7ZA?fr... 11000 29 2020-07-26 cici西西熙熙
4 《用户体验与心理-第1期》大学课程 https://www.bilibili.com/video/BV1r7411M7gY?fr... 1373 9 2020-02-24 Luka老师
... ... ... ... ... ... ...
1902 【中国石油大学】构造地质学(第1-2章) ——主讲:李理老师 https://www.bilibili.com/video/BV1Y4411x7sE?fr... 4097 5 2019-05-02 點點滴滴Super
1903 【模电】模拟电子技术基础【四】 https://www.bilibili.com/video/BV1sb411v7E6?fr... 5997 11 2019-03-08 干脆的非洲鼓
1904 【模电】模拟电子技术基础【三】 https://www.bilibili.com/video/BV1Rb411i7yo?fr... 4713 8 2019-03-05 干脆的非洲鼓
1905 结构化学-东北大学-王军 https://www.bilibili.com/video/BV1yb411t7Mb?fr... 5835 2 2019-02-28 万万万万不能怂
1906 《结构化学》南开大学-孙宏伟 重点难点解析 https://www.bilibili.com/video/BV1yt411t7UG?fr... 5287 6 2019-01-28 阿bu爱学习

1907 rows × 6 columns

Example 2

df1 = pd
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值