2021-11-07大数据学习日志——Pandas——Pandas快速入门

01_Python数据开发简介

 

学习目标

  • 了解 Python 做数据开发的优势
  • 知道 Python 数据开发常用开源库

1.1 为什么要使用Python做数据开发

注意:这里的数据开发包含了数据分析以及大数据开发

1.1.1 Python在数据开发领域的优势

Python作为当下最为流行的编程语言之一,可以独立完成数据开发的各种任务:

  • 语言本身就简单易学,书写代码简单快速
  • 同时在数据分析以及大数据领域里有海量的功能强大的开源库,并持续更新
    • Pandas:数据清洗、数据处理、数据分析
    • Sklearn:机器学习、统计分析
    • PySpark:Spark使用Python
    • PyFlink:Flink使用Python
    • Matplotlib、Seaborn、Pyecharts:数据可视化(出图表)
    • ...

1.1.2 为什么要学习 Pandas

Python在数据处理上独步天下:代码灵活、开发快速;尤其是Python的 Pandas 开源库,无论是在数据分析领域、还是在大数据开发场景中都具有显著的优势:

  • Pandas 是 Python 中的一个第三方数据分析开源库,也是商业和工程领域最流行的结构化数据工具集,用于数据清洗、处理以及分析
  • Pandas 和 PySpark 中很多功能都类似,甚至使用方法都是相同的;当我们学会 Pandas 之后,再学习 PySpark 就更加简单快速
  • Pandas在数据处理上具有独特的优势
    • 底层是基于Numpy构建的,所以运行速度特别的快
    • 有专门的处理缺失数据的API
    • 强大而灵活的分组、聚合、转换功能
  • Pandas 在整个数据开发的流程中的应用场景
    • 在大数据场景下,数据在流转的过程中,Pandas 中丰富的API能够更加灵活、快速的对数据进行清洗和处理
    • 数据量大到 excel 严重卡顿,且又都是单机数据的时候,我们使用 Pandas
    • 在大数据 ETL 数据仓库中,对数据进行清洗及处理的环节使用 Pandas

1.1.3 其他常用Python库介绍

在数据分析、数据开发领域,除了 Pandas 还有其他常用的一些库,如下:

扩展包 简介
NumPy Python 中的一个开源数学运算库,运行速度非常快,主要用于数组计算
Matplotlib Matplotlib 是一个功能强大的数据可视化开源 Python 库
Seaborn Python 中的一个数据可视化开源库,建立在 Matplotlib 之上,并集成了
Pandas 的数据结构
Pyecharts 基于百度的 echarts 的 Python 数据可视化开源库,有完整丰富的中文文
档及示例
Sklearn 即scikit-learn,是基于 Python 语言的机器学习工具,经常用于统计分析计算
PySpark 是 Spark 为 Python 开发者提供的 API,具有 Spark 全部的 API 功能

02_pandas快速入门

学习目标

  • 能够知道 DataFrame 和 Series 数据结构
  • 能够加载 csv 和 tsv 数据集
  • 能够区分 DataFrame 的行列标签和行列位置编号
  • 能够获取 DataFrame 指定行列的数据

2.1 DataFrame 和 Series 简介

pandas是用于数据分析的开源Python库,可以实现数据加载,清洗,转换,统计处理,可视化等功能。

pandas最基本的两种数据结构:

1)DataFrame

  • 用来处理结构化数据(SQL数据表,Excel表格)
  • 可以简单理解为一张数据表(带有行标签和列标签)

2)Series

  • 用来处理单列数据,也可以以把DataFrame看作由Series对象组成的字典或集合
  • 可以简单理解为数据表的一行或一列

2.2 加载数据集(csv和tsv)

2.2.1 csv和tsv文件格式简介

csv 和 tsv 文件都是存储一个二维表数据的文件类型。

注意:其中csv文件每一列的列元素之间以逗号进行分割,tsv文件每一行的列元素之间以\t进行分割。

2.2.2 加载数据集(tsv和csv)

1)首先打开jupyter notebook,进入自己准备编写代码目录下方,创建01-pandas快速入门.ipynb文件:

注意:提前将提供的 data 数据集目录放置到 01-pandas快速入门.ipynb 同级目录下,后续课程会加载 data 目录下的数据集。

2)导入 pandas 包

注意:pandas 并不是 Python 标准库,所以先导入pandas

# 在 ipynb 文件中导入 pandas
import pandas as pd

3)加载 csv 文件数据集

tips = pd.read_csv('./data/tips.csv')
tips

4)加载 tsv 文件数据集

# sep参数指定tsv文件的列元素分隔符为\t,默认sep参数是,
china = pd.read_csv('./data/china.tsv', sep='\t')
china

2.3 DataFrame 的行列标签和行列位置编号

2.3.1 DataFrame 的行标签和列标签

1)如果所示,分别是 DataFrame 的行标签和列标签

2)获取 DataFrame 的行标签

# 获取 DataFrame 的行标签
china.index

3)获取 DataFrame 的列标签

# 获取 DataFrame 的列标签
china.columns

4)设置 DataFrame 的行标签

# 注意:DataFrame设置行标签时,并不会改变原来的DataFrame,而是返回的副本
china_df = china.set_index('year')

2.3.2 DataFrame 的行位置编号和列位置编号

DataFrame 除了行标签和列标签之外,还具有行列位置编号。

行位置编号:从上到下,第1行编号为0,第二行编号为1,…,第n行编号为n-1

列位置编号:从左到右,第1列编号为0,第二列编号为1,…,第n列编号为n-1

注意:默认情况下,行标签和行位置编号是一样的。

2.4 DataFrame 获取指定行列的数据

以下示例都使用加载的 gapminder.tsv 数据集进行操作,注意将 year 这一列设置为行标签。

2.4.1 loc函数获取指定行列的数据

基本格式

语法 说明
df.loc[[行标签1, ...], [列标签1, ...]] 根据行标签和列标签获取对应行的对应
列的数据,结果为:DataFrame
df.loc[[行标签1, ...]] 根据行标签获取对应行的所有列的数据
结果为:DataFrame
df.loc[:, [列标签1, ...]] 根据列标签获取所有行的对应列的数据
结果为:DataFrame
df.loc[行标签] 1)如果结果只有一行,结果为:Series
2)如果结果有多行,结果为:DataFrame
df.loc[[行标签]] 无论结果是一行还是多行,结果为DataFrame
df.loc[[行标签], 列标签] 1)如果结果只有一列,结果为:Series,
行标签作为 Series 的索引标签
2)如果结果有多列,结果为:DataFrame
df.loc[行标签, [列标签]] 1)如果结果只有一行,结果为:Series,
列标签作为 Series 的索引标签
2)如果结果有多行,结果为DataFrame
df.loc[行标签, 列标签] 1)如果结果只有一行一列,结果为单个值
2)如果结果有多行一列,结果为:Series,
行标签作为 Series 的索引标签
3)如果结果有一行多列,结果为:Series,
列标签作为 Series 的索引标签
4)如果结果有多行多列,结果为:DataFrame

演示示例

示例1:获取行标签为 1952, 1962, 1972 行的 country、pop、gdpPercap 列的数据
示例2:获取行标签为 1952, 1962, 1972 行的所有列的数据
示例3:获取所有行的 country、pop、gdpPercap 列的数据
示例4:获取行标签为 1957 行的所有列的数据
示例5:获取行标签为 1957 行的 lifeExp 列的数据

示例实现

1)示例1:获取行标签为 1952, 1962, 1972 行的 country、pop、gdpPercap 列的数据

# 示例1:获取行标签为 1952, 1962, 1972 行的 country、pop、gdpPercap 列的数据
china_df.loc[[1952, 1962, 1972], ['country', 'pop', 'gdpPercap']]

2)示例2:获取行标签为 1952, 1962, 1972 行的所有列的数据

# 示例2:获取行标签为 1952, 1962, 1972 行的所有列的数据
china_df.loc[[1952, 1962, 1972]]

3)示例3:获取所有行的 country、pop、gdpPercap 列的数据

# 示例3:获取所有行的 country、pop、gdpPercap 列的数据
china_df.loc[:, ['country', 'pop', 'gdpPercap']]

4)示例4:获取行标签为 1957 行的所有列的数据

# 示例4:获取行标签为 1957 行的所有列的数据
china_df.loc[1957]

# 示例4:获取行标签为 1957 行的所有列的数据
china_df.loc[[1957]]

5)示例5:获取行标签为 1957 行的 lifeExp 列的数据

# 示例5:获取行标签为 1957 行的 lifeExp 列的数据
china_df.loc[[1957], 'lifeExp']
或
china_df.loc[1957, ['lifeExp']]
或
china_df.loc[1957, 'lifeExp']

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在进行大数据财务分析时,可以使用Python作为编程语言来处理和分析数据。Python有丰富的数据处理和分析库,如Pandas、NumPy和Matplotlib,可以帮助处理大规模的数据集和生成可视化报告。此外,还可以使用开源的分布式SQL查询引擎Presto来进行交互式的分析查询。Presto适用于处理大规模的数据,并可以实现快速的交互式分析。它可以对250PB以上的数据进行快速地交互式分析,并且在处理速度方面比传统的查询引擎如Hive和MapReduce要好上10倍以上。 另外,Amazon Kinesis Streams是一个用于处理流数据的服务,可以从数十万种来源中连续捕获和存储大量的数据。它可以用于收集和分析网站点击流、财务交易、社交媒体源、IT日志和定位追踪事件等数据,满足大数据财务分析的需求。 对于商务智能方面的需求,可以使用开源的商务智能软件Pentaho。Pentaho是一个基于Java平台的商业智能套件,包括报表、分析、图表、数据集成、数据挖掘等工具软件。它以工作流为核心,强调面向解决方案而非工具组件,可以满足商务智能的各个方面的需求。 综上所述,大数据财务分析可以基于Python编程语言进行处理和分析数据,并可以借助Presto进行交互式查询和分析。此外,Amazon Kinesis Streams可以用于处理流数据,而Pentaho则是一个全面的商务智能套件,可满足各种商务智能需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值