介绍
Pandas是一套用于Python的快速的,高效的数据分析工具。近年来它的受欢迎程度飙升,对于数据清洗处理与机器学习所必不可少的库。
正如Numpy提供了基础的数据类型,Pandas提供了数组的处理操作,并定义了待处理数据的基本架构,以及赋予了一系列处理基于该数据结构的数据处理方法,例如:
- 读取数据
- 调整索引
- 使用日期和时间序列
- 排序,分组,重新排序和一般数据调整
- 数据缺失值清洗填充处理等
- 数据提取、 筛选及整合(合并)
跟其他统计、绘图和机器学习模型构建等提供了处理数据的方法,例如scikit-learn、scipy、statsmodels和matplotlib等。为处理数据,必须导入的数据计算、处理的库为:
import numpy as np
import pandas as pd
Pandas定义了Series和DataFrame两种重复数据类型,Series可以看作是column,例如单变量型的数据,DataFrame可以看作是多个Series的聚合而成的。
1.Series()
Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
- 从列表创建Series
df = pd.Series([2,5,7,98,56])
print(df)
-----------------------------
0 2
1 5
2 7
3 98
4 56
dtype: int64
使用print()函数打印结果输出时,会输出两列值。第一列称为索引。它通常从 0 开始并一直运行到 N-1,其中 N 是Series 的大小。我们可以通过 df.shape[0]
来查看 Series 的大小。第二列是我们输入的实际数据。
- 从dict创建Series
也可以使用 Python 字典来初始化 Series。在这种情况下,Series 从 dict 的键中获取其索引,如下所示:
months = {'Jan':350,
'Feb':560,
'Mar':660,
'Apr':800,
'May':1010,
'Jun':1320}
df1 = pd.Series(months)
print(df1)
------------------------
Jan 350
Feb 560
Mar 660
Apr 800
May 1010
Jun 1320
dtype: int64
- 从标量初始化Series
你还可以使用标量来初始化 Series。在这种情况下,Series 的所有元素都初始化为相同的值。与标量一起使用进行初始化时,可以指定索引数组。在这种情况下,Series 的大小与索引数组的大小相同。
在下面的实例中,我们使用 range() 函数来指定索引(从而指定 Series 的大小)。
df1 = pd.Series(5,index=range(0,6))
print(df1)
-----------------------------------
0 5
1 5
2 5
3 5
4 5
5 5
dtype: int64
- 创建Series的其他方法
2.DataFrame()
pandas 库将 DataFrame 定义为具有行和列的二维数据,大小可变的数据结构。简而言之,你可以将 DataFrame 视为数据表,即一维格式化的二维数据,它具有以下特征:
数据包含有多个行和列;
每行数据是一个数据样本;
每列数据是同一属性的数据值;
每列中的数据通常是相同类型的数据 —— 例如,数字,字符串,日期;
通常,与 Excel 数据集不同的是,DataFrame 避免丢失值,并且行或列之间没有间隙和空值。
DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
Dataframe可以是手动创建,也可以是读取文件数据来创建(如csv数据)
pd.DataFrame(np.random.randint(1,20,size=(5,4)),
index=['A','B','C','D','E'],
columns=['a','b','c','d'])