当前位置:
首页 > temp > python入门教程 >
-
Python--Pandas简单了解
Python--Pandas简单了解
1. Pandas介绍
1.1 Pandas介绍 - 数据处理工具
-
panel
+data
+analysis
- panel面板数据 - 计量经济学 三维数据
1.2 为什么使用Pandas
- 便捷的数据处理能力
- 读取文件方便
-
封装了
Matplotlib
、Numpy
的画图和计算
1.3 DataFrame
- 结构:既有行索引,又有列索引的二维数组
-
属性:
-
shape
# (2,3) -
index
: 行索引,表名不同行,横向索引,叫index -
columns
: 列索引,表名不同列,纵向索引,叫columns -
values
:直接获取其中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)
-
直接索引
- 先列后行
-
按名字索引
-
loc
-
-
按数字索引
-
iloc
-
-
组合索引
- 数字、名字
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 None -
y
: 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 散点图
-
-
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 None -
sep
:character, default',' -
columns
: sequence, optional -
mode
: '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()
出处:https://www.cnblogs.com/Slience-me/p/15160477.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数