一、pandas简介安装

pandas是一个强大的python数据分析的工具包

pandsa是基于NumPy构建的

1、pandas的主要功能

1、具备对其功能的数据结构DataFrame、Series

金融量化分析【day110】:Pandas的Series对象-LMLPHP

2、集成时间序列功能

3、提供丰富的数学运算和操作

金融量化分析【day110】:Pandas的Series对象-LMLPHP

4、灵活处理缺失数据

2、安装方法

pip install pandas

3、引用方法

import pandas as pd

二、Series对象

1、pandas的Series对象是一个带索引数据构成的一维数组,可以用一个数组创建Series对象

import numpy as np
import pandas as pd
data = pd.Series([0.25,0.5,0.75,10])
data

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

金融量化分析【day110】:Pandas的Series对象-LMLPHP

2、Series是通用NumPy数组

data = pd.Series([0.25,0.5,0.75,10],index=['a','b','c','d'])

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

data = pd.Series([0.25,0.5,0.75,10],index=['2','5','3','7'])

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

3、Series是特殊的字典

area_dict = {'California': 423967, 'Texas': 695662, 'New York': 141297,
'Florida': 170312, 'Illinois': 149995}
area = pd.Series(area_dict)
area

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

三、Series数据对齐

1、pandas在运算时,会按索引进行对齐然后计算,如果存在不同的索引,则结果的索引是两个操作数索引的并集

1、sr1+sr2

金融量化分析【day110】:Pandas的Series对象-LMLPHP

金融量化分析【day110】:Pandas的Series对象-LMLPHP

2、sr1+sr3

金融量化分析【day110】:Pandas的Series对象-LMLPHP

金融量化分析【day110】:Pandas的Series对象-LMLPHP

金融量化分析【day110】:Pandas的Series对象-LMLPHP

2、如何在两个Series对象相加时将缺失值设置为0?

三、缺失数据

缺失数据:使用NaN(Not a Number)来表示缺失数据,其值等于np.nan

内置的None值也会被当做NaN处理

1、发现缺失数据

1、data.isnull()创建一个布尔类型的掩码标签缺失值

import numpy as np
import pandas as pd
data = pd.Series([1, np.nan, 'hello', None])
data.isnull()

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

1、data[data.notnull()与data.isnull()操作相反

data[data.notnull()]

 金融量化分析【day110】:Pandas的Series对象-LMLPHP

2、剔除缺失数据

1、dropna()返回一个剔除缺失值的数据(剔除任何包含缺失值的整行数据)

df3.dropna()

金融量化分析【day110】:Pandas的Series对象-LMLPHP

2、dropna(how='any')返回一个剔除缺失值的数据(会剔除任何包含缺失值的整列数据)

df.dropna(axis='columns', how='all')

金融量化分析【day110】:Pandas的Series对象-LMLPHP

金融量化分析【day110】:Pandas的Series对象-LMLPHP

3、dropna(how='any')返回一个剔除缺失值的数据(只要有缺失值就剔除整行或整列)

df2.dropna(how='any')

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

df2[df2['close'].notnull()]

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

4、dropna(how='any')返回一个剔除缺失值的数据(行或列中非缺失值的最小数量)

df.dropna(axis='rows', thresh=3)

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

第一行和第三行被剔除了,因为他们只包含两个非缺失值

3、填充缺失数据

有时候你可你可能并不想移除缺失值,而是想把他们替换成有效的数值,有效的值可能想0,1,2那样单独的值,也可能

是经过填充(imputation)或转换(interpolation)得到的,虽然你可以通过isnull方法建立掩码来填充缺失值,但是Pandas

为此专门提供了一个fillna(0)方法,他将返回填充缺失值后的数组副本

data = pd.Series([1, np.nan, 2, None, 3], index=list('abcde'))
data

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

1、data.fillna(0)单独的值填充缺失值

data.fillna(0)

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

2、method='ffill'  可以用缺失值前面的有效值来从前往后填充

data.fillna(method='ffill')

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

3、method='bfill' 也可以用缺失值的有效值从后向前填充

data.fillna(method='bfill')

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

4、DataFrame的操作方法与Series类似,只是在填充时候需要设置坐标轴参数axis

df.fillna(method='ffill', axis=1)

  金融量化分析【day110】:Pandas的Series对象-LMLPHP

需要注意的是,假如从前往后填充式,需要填充的却是值前面没有值,那么他就仍然是缺失值

4、对不同趋势值的转换规则

金融量化分析【day110】:Pandas的Series对象-LMLPHP

04-20 21:15