Python–Pandas简单了解
1. Pandas介绍
1.1 Pandas介绍 - 数据处理工具
panel
+data
+analysis
- panel面板数据 - 计量经济学 三维数据
1.2 为什么使用Pandas
- 便捷的数据处理能力
- 读取文件方便
- 封装了
Matplotlib
、Numpy
的画图和计算1.3 DataFrame
- 结构:既有行索引,又有列索引的二维数组
- 属性:
shape
# (2,3)index
: 行索引,表名不同行,横向索引,叫indexcolumns
: 列索引,表名不同列,纵向索引,叫columnsvalues
:直接获取其中array的值T
: 转置
- 方法:
head()
默认显示前5行,可指定head(3)tail()
默认显示后5行
- 3 DataFrame索引的设置
- 1)修改行列索引值
- 2)重设索引
- 3)设置新索引
DataFrame索引的设置
- 以某列值设置为新的索引
set_index(keys, drop=True)
keys
: 列索引名称或者列索引名称的列表drop
:boolean, default True. 当作新的索引,删除原来的列
- 2
Panel
DataFrame
的容器
- 3
Series
- 带索引的一维数组
- 属性
index
values
- 总结:
DataFrame
是Series
的容器Panel
是DataFrame
的容器
2. 基本数据操作
2.1 索引操作
- 读取文件
data = pd.read_csv("./stock_day/stock_day.csv")
- 删除一些列,让数据更简单些,再去做后面的操作
data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","v_ma20"], axis=1)
- 直接索引
- 先列后行 2. 按名字索引
loc
3. 按数字索引 -iloc
4. 组合索引- 数字、名字
2.2 赋值
2.3 排序
- 对内容排序
dataframe
series
- 对索引排序
dataframe
series
- 使用
df.sort_values(key= , ascending=)
对内容进行排序- 单个键或者多个键进行排序,默认升序
ascending=False
,降序ascending=True
,升序
- 使用
series.sort_values(ascending=)
对内容进行排序- series排序时,只有一列,不需要参数
ascending=False
,降序ascending=True
,升序
- 使用
series.sort_index(ascending=)
对索引进行排序- 与df一致
3. DataFrame运算
算术运算
逻辑运算
- 逻辑运算符
- 布尔索引 - 逻辑运算函数 -
query()
查询 -isin()
是不是在条件中
- 布尔索引 - 逻辑运算函数 -
统计运算
min max mean median var std
最小值,最大值,均值,中位数,方差,标准差 -np.argmax()
-np.argmin()
-describe()
能够直接得出很多统计结果,count,mean,std,min,max - 计算平均值,标准差,最大值,最小值
conut | Number of non-NA observations |
---|---|
sum | Sum of values 值的总和 |
mean | Mean of values 数据的平均值 |
median | Arithmetic median of values 数据的算数平均值 |
min | Minimum 最小值 |
max | Maximum 最大值 |
mode | Mode 众数 |
abs | Absolute Value 绝对值 |
prod | Product of values 值的积 |
std | Bessel-corrected sample standard deviation 贝塞尔校正样本标准差 |
var | Uniblased variance 无偏方差;均方差 |
idxmax | compute the index labels with the maximum 计算索引标签的最大值 |
idxmin | compute the index labels with the minimum 计算索引标签的最小值 |
- 对于单个函数去进行统计的时候,坐标轴还是按照这些默认为”columns”(axis=0, default), 如果要对行”index”需要指定(axis=1)
自定义运算
apply(func, axis=0)
func
:自定义函数axis=0
:默认是列,axis=1为行进行运算
- 定义一个对列,最大值 最小值的函数
4. Pandas画图
pandas.DataFrame.plot
DataFrame.plot(x-None, y=None, kind='line')
x
: label or positon, default Noney
: label, positon or list of label , positions, default None- Allows plotting of one colume versus another 允许绘制一列对另一列 -
kind
: str -'line'
: line plot (default) 折线图 -'bar'
: vertical bar plot
-'barh'
: horizontal bar plot -'hist'
: hisogram 直方图 -'pie'
: pie plot 饼状图 -'scatter'
: scatter plot 散点图
- Allows plotting of one colume versus another 允许绘制一列对另一列 -
5 文件读取与存储
5.1 CSV
1. 读取csv文件-read_csv()
pandas.read_csv(filepath_or_buffer, sep=',' , delimiter = None)
filepath_or_buffer
: 文件路径usecols
: 指定读取的列名, 列表形式2. 写入csv文件-to_csv()
DataFrame.to_csv(path_or_buf=None, sep=',' ,columns=None, header=True, index=True, index_label=None, mode='w', encoding=None)
path_or_buf
: string or file handle, default Nonesep
:character, default’,’columns
: sequence, optionalmode
: ‘w’:重写, ‘a’:追加index
: 是否写进行索引header
: boolean or list of string ,default True,是否写进索引值
Series.to_csv(path=None,index=True,sep=',',na_rep='',float_format=None,header=False,index_label=None,mode='w',encoding=None,compression=None,date_format=None,decimal='.')
data = pd.read_csv("stock_day2.csv", names=["open", "high", "close", "low", "volume", "price_change", "p_change", "ma5", "ma10", "ma20", "v_ma5", "v_ma10", "v_ma20", "turnover"])
5.2 HDF5
hdf5 存储 3维数据的文件
key1 dataframe1二维数据
key2 dataframe2二维数据
pd.read_hdf(path, key=)
df.to_hdf(path, key=)
1. 读取HDF5文件-read_hdf()
HDF5文件的读取和存储都需要指定一个键,值为要存储的DataFrame
pandas.read_hdf(path_or_buf, key=None, **kwargs)
- 从h5文件中读取数据
path_or_buf
: 文件路径key
:读取的键mode
:打开文件的模式return
:Theselected object
需要安装tables模块避免不能读取HDF5文件
pip install tables
2. 写入HDF5文件-to_hdf()
DataFrame.to_hdf(path_or_buf, key, **kwargs)
path_or_buf
: 文件路径key
:读取的键mode
:打开文件的模式return
:Theselected object
5.3 JSON
1. read_json()
pandas.read_json(path_or_buf=None, orient=None, typ='frame', lines=False)
- 将JSON格式准换成默认的Pandas DataFrame格式
orient
: string, Indication of expected JSON string format.'split'
:dict like {index -> [index], columns -> [columns], data -> [values]}'records'
: list like [{column -> value}, …, {column -> value}]'index'
: dict like {index -> {column -> value}}'columns'
: dict like {column -> {index -> value}},默认该格式'values'
: just the values array
lines
: boolean , default False- 按照每行读取json对象
typ
: default ‘frame’, 指定转换成的对象类型series或者dataframe
2. to_json()
文档信息
- 本文作者:slience_me
- 本文链接:https://slienceme.xyz/2021/08/19/Python-Pandas%E7%AE%80%E5%8D%95%E4%BA%86%E8%A7%A3/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)