python 金融数据分析与挖掘
pandas
1. 序列的创建和访问
# -*- coding: utf-8 -*-
import pandas as pd # 导入pandans包
import numpy as np # 导入numpy包
# Series()序列对象创建
s1 = pd.Series([1,-2,2,3,'hp']) #指定列表创建默认序列
s2 = pd.Series([1,-2,2,3,'hp'],index=['a','b','c','d','e'])# 指定列表创建指定序列
s3 = pd.Series(np.array([1,-2,2,3,'hp']))#指定数组创建默认序列
s4 = pd.Series((1,-2,2,3,'hp')) #指定元组创建默认序列
# 字典创建序列
dict1 = {"蜀国":"张飞","魏国":"典韦","吴国":"周瑜"} #定义字典
s5 = pd.Series(dict1) # 指定字典创建序列
# 序列的访问
print (s5["蜀国"])
2.序列的属性
# -*- coding: utf-8 -*-
# 序列有两个属性,分别为值(values)和索引(index)
import pandas as pd
s1 = pd.Series([1,2,8,"hp"]) #创建序列
va1 = s1.values # 获取序列s1中的值,赋给变量va1
in1 = s1.index # 获取序列s1中的序列,赋给变量in1
序列的方法
1.unique()通过序列中的unique()方法,可以去掉序列中重复的元素值,使元素值唯一。
s1 = pd.Series([1,2,3,5,1,2,1,2])
s2 = pd.unique(s1)
2.isin()通过isin()方法,判断元素值的存在性,如果存在,则返回True,否则返回False
s3 = pd.Series([1,2,3,5,1,2,1,2])
print(s3.isin([1,2]))
# 结果
0 True
1 True
2 False
3 False
4 True
5 True
6 True
7 True
dtype: bool
3.value_counts()通过序列中的value_counts()方法,可以统计序列元素值出现的次数。
s5 = s3.value_counts()
4.空值处理方法在序列中处理空值的方法有三个isnull()、notnull()、dropan()。它们的使用方法如下:isnull()判断序列中是否有空值(nan值),如果有空值,返回True,否则返回False;notnull()判断序列中的非空值(nan值),如果非空值,返回True,否则返回False,与isnull方法刚好相反;dropan()清洗序列中的空值(nan值),可以配合使用空值处理函数。
3.序列切片
序列元素的访问是通过索引完成的,切片即连续或者间断地批量获取序列中的元素,可以通过给定一组索引来实现切片的访问。一般地,给定的一组索引可以用列表或者逻辑数组来表示
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
s1 = pd.Series([1,2,3,4])
s2 = pd.Series([1,2,3,4],index=("a","b","c","d"))
s3 = pd.Series(np.array([1,6,"l"]),index=("a","b","c"))
print(s1[[0,2]])
print(s2[["a","c"]])
print(s3["a"])
# 结果
0 1
2 3
dtype: int64
a 1
c 3
dtype: int64
1
4.序列聚合运算
序列的聚合运算,主要包括对序列中的元素求和、平均值、最大值、最小值、方差、标准差等。示例代码如下:
# -*- coding: utf-8 -*-
import pandas as pd
s1 = pd.Series([1,2,3,4,5,6,7,8,9,10])
mysun = s1.sum() # 求和
mymean = s1.mean() # 求平均
mystd = s1.std() #求标准差
mymax = s1.max() # 求最大值
mymin = s1.min() # 求最小值
myvar = s1.var() # 求标准差
5. 数据框
Pandas中另一个重要的数据对象为数据框(DataFram),由多个序列按照相同的index组织在一起形成一个二维表。事实上,数据框的每一列为序列。数据框的属性包括index、列名和值。由于数据框是更为广泛的一种数据组织形式,在将外部数据文件读取到Python中时大部分会采用数据框的形式进行存取,如数据库、Excel和TXT文件。同时数据框也提供了极为丰富的方法用于处理数据及完成计算任务。数据框是Python完成数据处理和分析的重要数据结构之一。
基于字典,利用Pandas库中的DataFrame函数,可以创建数据框。
# -*- coding: utf-8 -*-
# 数据框的建立
import pandas as pd
import numpy as np
mydist = {"a":[2,2,np.nan,5],"b":["a",'b',np.nan,"ba"],"c":[6,5,np.nan,9]}
myseries = pd.Series(mydist)
mydataframe =pd.DataFrame(mydist)
5. 外部文件读取
1.1 Excel文件读取
通过read_excel()函数读取Excel文件,可以读取指定的工作簿(sheet),也可以设置读取有表头或无表头的数据表。示例代码如下:
# -*- coding: utf-8 -*-
import pandas as pd
path = "C:/Users/xiexi/Desktop/学习数据.xlsx"
data = pd.read_excel(path,"Sheet2")
# 读取txt数据
mypath = "C:/Users/xiexi/Desktop/学习数据.txt"
mydata = pd.read_table(mypath)