栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas学习笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas学习笔记

Pandas介绍

1.pandas是什么 为什么用?
2008年WesMcKinney开发出的库
专门用于数据挖掘的开源Python库
以Numpy为基础 借力Numpy模块在计算方面性能高的优势
基于matplotlib 能够简便的画图
独特的数据结构
为什么用
数据处理能力强
读取文件方便
封装了Matplotlib、Numpy的画图和计算
核心数据结构
Dataframe
结构 有行索引 列索引的二维数组 想获取某个数据时更简单
属性 shape index colums values 直接获取其中array的值 T
方法 head tail 返回前几行 返回后几行

#添加行索引
y [ 行索引{} .format(i) for i in range(7)]
#添加列索引
x [ 列索引{} .format(i) for i in range(9)]
pd.Dataframe(data,index y,columns x)


设置索引

# 修改行列索引值
# data.index[2] 新索引88 不能单独修改索引
stock_ [ 新索引{} .format(i) for i in range(10)]
data.index stock_
# 重设索引
data.reset_index(drop False) # drop True把之前的索引删除
# 设置新索引
df pd.Dataframe({ month : [1, 4, 7, 10],
 year : [2012, 2014, 2013, 2014],
 sale :[55, 40, 84, 31]})
# 以月份设置新的索引
df.set_index( month , drop True)
# 设置多个索引 以年和月份
new_df df.set_index([ year , month ])

Pannel
MultiIndex
多级或分层索引对象

index属性
names: levels的名称 
levels: 每个level的元组值

Series
带索引的一维数组

 属性
 index
 values
# 创建
pd.Series(np.arange(3, 9, 2), index [ a , b , c ])
# 或用字典区创建
pd.Series({ red :100, blue :200, green : 500, yellow :1000})
sr data.iloc[1, :]
sr.index # 索引

基本操作
索引操作

data pd.read_csv( 路径名 .csv文件 ) #读取数据
data data.drop([ 不要的列1 , 不要的列2 , 不要的列3 , 不要的列4 ], axis 1) # 去掉一些不要的列
data[ 第一列 ][ 第一行 ] # 直接索引 先列后行
data.loc[ 第一行 ][ 第一列 ] # 按名字索引
data.loc[ 第一行 , 第一列 ]
data.iloc[1, 0] # 数字索引
# 组合索引
# 获取 [ 第一列 , 第二列 , 第三列 , 第四列 ]这个四个指标的结果
data.iloc[:4, [ 第一列 , 第二列 , 第三列 , 第四列 ]] # 不能用了
data.loc[data.index[0:4], [ 第一列 , 第二列 , 第三列 , 第四列 ]]]
data.iloc[0:4, data.columns.get_indexer([ 第一列 , 第二列 , 第三列 , 第四列 ])]
赋值操作
data.open 100
data.iloc[1, 0] 222
排序操作
1.对内容进行排序

使用df.sort_values(key [“关键字1”,“关键字2”],ascending )对内容进行排序
单个键或者多个键进行排序 默认升序
ascending False:降序 True:升序

对索引进行排序

data.sort_index()
Dataframe运算

算数运算

data[ 第一列 ].add(3).head() # 第一列统一加3 data[ 第一列 ] 3
data.sub(100).head() # 所有统一减100 data - 100
data[ 第二列 ].sub(data[ 第一列 ]).head() # 第二列减第一列

逻辑运算
、 、| 、

逻辑运算函数
query()
isin(关键字)

统计运算
describe()

画图
Dataframe.plot(x None, y None, kind ‘line’)

x: label or position
y: label, position or list of label, positions
kind: 图的类型
‘line’、 bar 、“barh”、“hist”“pie”、“scatter”

文件的读取和存储
读取CSV文件

pd.read_csv( path , usecols [ 第一列 , 第二列 , 第三列 , 第四列 ]).head() # 读哪些列
data pd.read_csv( 文件名 , names [ 第一列 , 第二列 , 第三列 , 第四列 ]) # 如果列没有列名 用names传入
data[:10].to_csv( test.csv , columns [ 第一列 ]) # 保存open列数据
data[:10].to_csv( test.csv , columns [ 第一列 ], index False, mode a , header False) # 保存第一列数据 index False不要行索引 mode a 追加模式|mode w 重写 header False不要列索引

读取HDF5文件
HDF5文件的读取和存储需要指定一个键 值为要存储的Dataframe

read_hdf()
pandas.read_hdf(path_or_buf, key None, **kwargs)

path_or_buffer: 文件路径
key: 读取的键
mode: 打开文件的模式
reurn: The Selected object

从h5文件当中读取数据

to_hdf()
Dataframe.to_hdf(path_or_buf, key, **kwargs)

day_close pd.read_hdf( ./stock_data/day/day_close.h5 )
day_close.to_hdf( test.h5 , key close )

读取JSON文件
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

sa pd.read_json( Sarcasm_Headlines_Dataset.json , orient records , lines True)
sa.to_json( test.json , orient records , lines True)
缺失值处理
**如何 处理缺失值**
 1、删除含有缺失值的样本
 2、替换/插补数据

如何处理NaN?
判断是否有NaN
pd.isnull(df) 或者 pd.notnull(df)
删除含有缺失值的样本
df.dropna(inplace True) 默认按行删除 inplace:True修改原数据 False返回新数据 默认False
替换/插补数据
df.fillna(value,inplace True) value替换的值 inplace:True修改原数据 False返回新数据 默认False

import pandas as pd
import numpy as np
movie pd.read_csv( C:/virtual/IMDB-Movie-Data.csv )
# 1 判断是否存在NaN类型的缺失值
np.any(pd.isnull(movie)) # 返回True 说明数据中存在缺失值
#np.all(pd.notnull(movie)) # 返回False 说明数据中存在缺失值

import pandas as pd
import numpy as np
movie pd.read_csv( C:/virtual/IMDB-Movie-Data.csv )
# 1 判断是否存在NaN类型的缺失值
pd.isnull(movie)
#pd.isnull(movie).any() #加了.any,返回某个字段是否有缺失值
# pd.notnull(movie).all()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号