文章目录
1.Pandas介绍
开源的数据挖掘库,用于数据探索,封装了matplotlib,numpy
2.案例知识点
2.1创建DataFrame
- pd.DataFrame(ndarray,index=,columns=)
- 数据必须为ndarray格式
import pandas as pd
import numpy as np
# 用numpy正态分布生成数据1000行8列
stock_change=np.random.normal(3,0.6,(1000,8))
stock_change
# 转化为DataFrame格式
stock_code=["股票{}".format(i+1) for i in range(stock_change.shape[0])] #生成行标签
stock_date=pd.date_range(start="20000229",periods=stock_change.shape[1],freq="B") #生成行标签
stock_rise=pd.DataFrame(stock_change,index=stock_code,columns=stock_date)
stock_rise.head(5)
2.2创建日期
- pd.date_range(start,end,periods,freq)
- start – 开始日期
- end – 结束日期
- periods – 时间跨度
- freq – 周期
stock_date=pd.date_range(start="20000229",periods=stock_change.shape[1],freq="B") #生成行标签
3.DataFrame介绍
3.1DataFrame属性
代码 | 意义 |
---|---|
.shape() | 形状 |
.index() | 列索引值 |
.columns() | 行索引值 |
.values() | 数据值 |
.T | 转置 |
.head() | 展示前五行数据 |
.tail() | 展示后五行数据 |
stock_rise.shape
stock_rise.index
stock_rise.columns
stock_rise.values
stock_rise.T
stock_rise.head()
stock_rise.tail()
3.2DataFrame设置索引
1.修改行列索引
必须整行或者整列去进行修改
# 修改行索引
stock_rise.index=["股票——{}".format(i+1) for i in range(stock_rise.shape[0])]
stock_rise.head()
2.重设索引
对象.reset_index()
# 重设索引
stock_rise.reset_index(drop=True) #True是删除原有标签
stock_rise.reset_index(drop=False) #Flase是不删除原有标签生成新标签
3.设置新索引
对象.set_index()
# 设置列为新索引
stock_rise.set_index(['20000229','20000306'])
3.3基本数据操作
1.索引操作
- 直接[] – 先列后行
import pandas as pd
stock=pd.read_csv("D:\\my_dateset\\National_Stock_Exchange_of_India_Ltd.csv",index_col="Symbol") #index_col="Symbol"设置Symbol为行索引
stock.tail()
# 直接使用行列索引(先列后行)
stock["Low"]["UPL"]
- .loc() – 先行后列,索引值
# loc、iloc 先行后列
stock.loc["TECHM":"WIPRO","Chng"]
- .iloc() – 先行后列,索引值下标
stock.iloc[:10,3:8] #前10行第4到8列
2.赋值操作
- 对象[“”]=
- 对象.赋值的索引=
stock["Open"]=100
stock.LTP=100
3.排序
- DataFrame
- 对象.sort_values()
- by – 按照什么顺序
- ascending – 升降序,默认升序
- 对象.sort_index()
- 按索引排序
- 对象.sort_values()
注意by这个参数可以接受多个值,优先按照第一个索引排序,如果相同,按照后面的
- series
- 对象.sort_values()
- 对象.sort_index()
stock.sort_values(by=["LTP"],ascending=False)
stock.sort_index()
3.4DataFrame运算
1.算术运算
- 直接使用方法,add,sub…
2.逻辑运算 - <、>、|、&
- 直接判断
- 逻辑运算函数
- 对象.query(“”)
- 对象.isin([])
stock.query("Chng>5 & Chng<100")
stock[stock["Chng"].isin([-6.25,-6.80])]
3.统计函数
- 对象.descibe()
- 统计函数
sum
mean
…
mode – 众数
idxmax – 最大值的索引
idxmin – 最小值的索引