pandas 学习 第1篇:pandas基础

pandas是基于NumPy构建的模块,含有使数据分析更快更简单的操作工具和数据结构,包含序列Series和数据框DataFrame两种最主要数据结构,Index也是pandas中非常重要的数据结构。

一,数据结构

数据框(DataFrame)类似于二维的关系表,每列的数据类型是相同的,列与列的数据类型可以不同,也可以相同。数据框的结构是行和列,列有列名,行有行索引,行索引还可以设置标签。

序列(Series)可以认为是二维表中的一列,因此,可以把数据框的一列转换为序列。在pandas中,序列是具有单一类型的一维数组,表示多行一列的数据结构,由于一列中的元素必须是相同的,因此,序列中的数据具有相同的数据类型。和数据框一样,序列具有行索引和行标签属性,每行都有一个索引和行标签。

import pandas as pd

除了Series和DataFrame之外,pandas还有一个非常重要的数据结构:Index,索引用来访问行,实现数据行的有序存储,并能对Series和DataFrame进行切片访问。

二,pandas的数据类型

在大多数情况下,pandas使用NumPy的数组和dtypes作为序列和数据框中列的数据类型,NumPy支持的数据类型是float、int、bool、timedelta64[ns]。pandas扩展了NumPy的类型系统,用dtype属性来显示元素的数据类型,pandas主要有以下几种dtype:

  • 字符串类型:object
  • 整数类型:Int64,Int32,Int8
  • 浮点数类型:float64,float32
  • datetime64[ns]、datetime64[ns, tz]、timedelta[ns]:表示日期和时间类型
  • bool:表示布尔类型
  • category:表示分类

查看变量的数据类型,使用type(var)函数

type(obj)

1,数值类型

pandas中的整数类型和浮点数类型可以为空(NULL),在定义数据组或序列时,使用dtype参数来定义整数类型:

arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
pd.array([1, 2, np.nan], dtype="Int64")
pd.Series([1, 2, np.nan], dtype="Int32")

使用float32、float64定义浮点数类型:

>>> pd.Series([1, 2, np.nan], dtype="float32")
0    1.0
1    2.0
2    NaN
dtype: float32

2,字符串类型

使用object来表示字符串类型

>>> pd.Series(['a', 'b', 'c'], dtype="object")
0    a
1    b
2    c
dtype: object

3,日期和时间类型类型

datetime64[ns] 表示的是日期和时间类型

>>> pd.Series(['2018-07-01', '2019-07-01', '2019-10-01'], dtype="datetime64[ns]")
0   2018-07-01
1   2019-07-01
2   2019-10-01
dtype: datetime64[ns]

4,类型转换

类型转换可以使用astype()函数,转换为特定的额数据类型:

>>> pd.Series(['2018-07-01', '2019-07-01', '2019-10-01']).astype('datetime64[ns]')
0   2018-07-01
1   2019-07-01
2   2019-10-01
dtype: datetime64[ns]

pandas还有类型转换的特殊函数,用于转换为特定的数据类型:

  • to_numeric() 
  • to_datetime() 
  • to_timedelta() 

比如,把序列转换为日期类型:

>>> pd.to_datetime(pd.Series(['2018-07-01', '2019-07-01', '2019-10-01']))
0   2018-07-01
1   2019-07-01
2   2019-10-01
dtype: datetime64[ns]

三,pandas的优势

  • 轻松处理数值型数据中的缺失数据(表示为Nan)
  • 可以从DataFrame和Series中插入和删除行数据和列数据,行和列都是可以变化的
  • 自动数据对齐
  • 可以对数据进行分组聚合操作
  • 强大的IO工具,用于从平面文件(CSV或格式化文件),Excel文件数据库加载数据
  • 时间序列处理,能够生成日期范围、进行移动窗口统计、移动窗口线性回归、日期转换等操作

 

参考文档:

pandas overview

posted @ 2019-09-19 11:07 悦光阴 阅读(...) 评论(...) 编辑 收藏