前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据分析利器--Pandas

数据分析利器--Pandas

作者头像
K同学啊
发布2019-01-22 11:12:57
3.6K0
发布2019-01-22 11:12:57
举报

1、前言

pandas是python数据分析中一个很重要的包;

在学习过程中我们需要预备的知识点有:DataFrame、Series、NumPy、NaN/None;

2、预备知识点详解

  • NumPy详解:标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的1,2,3,需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。(参考:Python 科学计算 – Numpy
  • Series: Series是一个一维的类似的数组对象,包含一个数组的数据(任何NumPy的数据类型)和一个与数组关联的数据标签,被叫做 索引。(参考:Series与DataFrame
  • DataFrame:一个Datarame表示一个表格,类似电子表格的数据结构,包含一个经过排序的列表集,它们每一个都可以有不同的类型值(数字,字符串,布尔等等)。Datarame有行和列的索引;它可以被看作是一个Series的字典(每个Series共享一个索引)。与其它你以前使用过的(如R 的 data.frame)类似Datarame的结构相比,在DataFrame里的面向行和面向列的操作大致是对称的。在底层,数据是作为一个或多个二维数组存储的,而不是列表,字典,或其它一维的数组集合。因为DataFrame在内部把数据存储为一个二维数组的格式,因此你可以采用分层索引以表格格式来表示高维的数据。(参考:Series与DataFrame
  • NaN/None: python原生的None和pandas, numpy中的numpy.NaN尽管在功能上都是用来标示空缺数据。但它们的行为在很多场景下确有一些相当大的差异。(参考:NaN 和None 的详细比较

3、pandas详解

3.1 简介:

pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库。pandas提供了快速,灵活和富有表现力的数据结构,目的是使“关系”或“标记”数据的工作既简单又直观。它旨在成为在Python中进行实际数据分析的高级构建块。

3.2 pandas的安装:

代码语言:javascript
复制
pip install pandas

3.3 核心数据结构

pandas最核心的就是Series和DataFrame两个数据结构。

名称

维度

说明

Series

1维

带有标签的同构类型数组

DataFrame

2维

表格结构,带有标签,大小可变,且可以包含异构的数据列

DataFrame可以看做是Series的容器,即:一个DataFrame中可以包含若干个Series。更详细的解释参考:Series与DataFrame

3.4 读取CSV文件

代码语言:javascript
复制
data = pd.read_csv("fileName.csv")

read_csv()中可以用的参数:

参数

说明

path

文件路径

sep或者delimiter

字段分隔符

header

列名的行数,默认是0(第一行)

index_col

列号或名称用作结果中的行索引

names

结果的列名称列表

skiprows

从起始位置跳过的行数

na_values

代替NA的值序列

comment

以行结尾分隔注释的字符

parse_dates

尝试将数据解析为datetime。默认为False

keep_date_col

如果将列连接到解析日期,保留连接的列。默认为False。

converters

列的转换器

dayfirst

当解析可以造成歧义的日期时,以内部形式存储。默认为False

data_parser

用来解析日期的函数

nrows

从文件开始读取的行数

iterator

返回一个TextParser对象,用于读取部分内容

chunksize

指定读取块的大小

skip_footer

文件末尾需要忽略的行数

verbose

输出各种解析输出的信息

encoding

文件编码

squeeze

如果解析的数据只包含一列,则返回一个Series

thousands

千数量的分隔符

3.5处理无效值

这里需要掌握三个函数:

pandas.isna(): 判断哪些值是无效的

pandas.DataFrame.dropna(): 抛弃无效值

pandas.DataFrame.fillna(): 将无效值替换成为有效值

具体用法参照:处理无效值

4、Pandas常用函数

函数

用法

DataFrame.duplicated()

DataFrame的duplicated方法返回一个布尔型Series,表示各行是否重复行。

DataFrame.drop_duplicates()

它用于返回一个移除了重复行的DataFrame

DataFrame.fillna()

将无效值替换成为有效值

5、Pandas常用知识点

5.1 Dataframe写入到csv文件

代码语言:javascript
复制
df.to_csv('D:\\a.csv', sep=',', header=True, index=True)

第一个参数是说把dataframe写入到D盘下的a.csv文件中,参数sep表示字段之间用’,’分隔,header表示是否需要头部,index表示是否需要行号。

5.2 Dataframe写入到数据库中

代码语言:javascript
复制
df.to_sql('tableName', con=dbcon, flavor='mysql')

第一个参数是要写入表的名字,第二参数是sqlarchmy的数据库链接对象,第三个参数表示数据库的类型,“mysql”表示数据库的类型为mysql。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年06月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、前言
  • 2、预备知识点详解
  • 3、pandas详解
    • 3.1 简介:
      • 3.2 pandas的安装:
        • 3.3 核心数据结构
          • 3.4 读取CSV文件
            • 3.5处理无效值
            • 4、Pandas常用函数
            • 5、Pandas常用知识点
              • 5.1 Dataframe写入到csv文件
                • 5.2 Dataframe写入到数据库中
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档