pandas学习笔记二

时间序列

pd.to_datetime() # 字符串 转 datetime

基本操作列

del //删除列
drop //删除指定index //也能删除列
索引
loc //行和列的索引
iloc //整数的行列索引
算数
df1 + df2
df1.add(df2, fill_vlaue=0) //没重叠的用0填充
sub
div
mul
pow
std //方差

函数应用

frame.apply(func) //每一列或每一行执行该函数 应用到一维的数据上
dataframe.applymap(func) //应用到每一个元素上
排序
sort_index //series index排序 dataframe 任意一个轴排序
sort_values(by=‘name’) //值排序 指定colums排序
rank(method=‘first’) //排名 若值相同按照第一次出现排名 method: average min max first dense
重复index
df.index.is_uniques //判断Index是否有重复值
统计
idxmax 返回最大值的index
description
唯一值、值计算
unique //series 得到唯一的数组
value_counts() //series 计算唯一值
isin //是否包含
Index.get_indexer //从可能包含重复值的数组到另一个不同值的数组
文件读写
read_json
html
xml
二进制文件
to_pickle
read_pickle
HDFStore //hdf5格式
excel
ExcelFile
read_excel
requests //web apis交互
数据库交互
sqlalchemy
read_sql
数据清洗和准备处理缺失数据
isnull
dropna(how, axis, thresh) //滤除缺失数据 thresh 删除几个Na值的行
填充缺失数据
fillna(method=ffill, limit=2) //
移除重复数据
duplicated //得到行重复的bool
drop_duplicates([column], keep=‘last’) //直接去除重复数据 last保留最后一个
unique //series 使用
利用函数或映射进行数据转换
data[‘food’].str.lower() //正行数据转小写
应用于series的每个元素
map
替换值
replace(a,b) b替换a
重命名轴索引
index.map(lambda)
rename(index=str.lower, columns=str.lower)
rename({"":""}) //直接重命名
离散化和面元划分描述cut(ages, bins, labels)//ages按照bins方式分割 不同的区别代表labelsqcut //与cut区别 均匀分割将数量平均分割。 边界值不能为空,需要添加duplicates="drop"处理该异常检测和过滤异常值
sign np.sign(data)可以生成1和-1 //整数为1 负数为-1
排列和随机采样
numpy.random.permutation(5) //获得0到4随机排列的数组
df.take(sampler) //根据数组sampler来进行index排序
df.sample(n=3) //随机选取3行数据
计算指标/哑变量 //不懂
get_dummies
字符串
split
strip //去除空格
join
count //字串出现的次数
index
find
replace
正则表达式
re模块
pandas矢量化字符串
series.str.func
数据规整: 聚合、合并和重塑层次化索引 多重索引 index
unstack //将双重索引变为一重 将数据的行“旋转”为列。
stack //一重变双重 将数据的列“旋转”为行。
重排与分级排序
swaplevel(‘a’, ‘b’) //a 与 b 互换
sort_index
使用dataframe的列作为索引
set_index(drop=)
reset_index //索引转成列 与上相反

DataFrame 合并

merge(df1, df2, on=) //根据相同的列名合并
merge(df1, df2, left_on=, right_on=) //根据指定的列名合并
merge(df1, df2, how=) //默认交集 外连接(并集)outer 左连接left 右连接right
merge(df1, df2, suffixes=) //列名重复,加前缀
索引上的合并
merge(left1, right1, left_on=‘key’, right_index=True) //左边的key列与右边的索引相对应的合并
left.join(right, how) //左索引和右索引的合并
轴向连接
enate //不懂
concat //将索引和值连接在一起
concat([s1,s2])
cooncat([df1,df2])
df1.join(df2) //横向添加
合并重叠数据
全部索引,部分重叠
np.where
b[:-2].combine_first(a[2:]) //部分组合重叠
df1.combine_first(df2) //df1上的NaN会被df2给替换
长宽格式转换 //不懂
数据聚合与分组运算groupby
pieces = dict(list(df.groupby(‘key1’))) //分组转dict
pieces[‘a’]
通过字典或series分组
通过函数分组

数据聚合

grouped.agg(func) //使用该函数 自定义函数
apply //groupby使用这个
高级应用
transform(func) //应用到每一个value中
时间
datetime
timedelta
字符串和datetime的相互转换
str(datetime) //将datetime 转 str
datetime.strftime()
strptime //将字符串转datetime
from dateutil.parser import parse
parse(‘2011-01-03’) //也能实现,任何日期表示形式都能解析
to_datetime
//切片操作
ts.truncate(after=‘1/9/2011’) //删除后面
date_range(startDate, endDate) //生成日期范围
date_range(startDate, periods=20) //20天
date_range(startDate, endDate, freq=‘4h’) //频率
DatetimeIndex
时区处理
import pytz
tz_localize
操作时区意识型Timestamp对象
不同时区之间的运算
时期及其算数运算
Period
period_range
PeriodIndex
布尔型
any
all
移动数据
shift(2) //将数据上移或下移,保持索引不变
category 节省内存和高性能的工具
有两个属性 categories codes
pd.Categorical() //直接创建
cat_s.cat.codes
cat_s.cat.categories
add_categories 在已存在的分类后面添加新的(未使用的)分类
as_ordered 使分类无序
as_unordered 使分类无序
remove_categories 移出分类,设置任何被移出的值为null
remove_unused_categories 移出任意不出现的数据中的分类值
rename_categories 用指定的新分类的名字替换分类; 不能改变分类的数目
reorder_categories 与rename_categories很像,但是可以改变结果,使分类有序
set_categories 用指定的新分类得名字替换分类;可以添加或删除分类
性能
category使用的内存少于object
检测函数
memory_usage //检测内存
%time //检测时间
透视表
pivot_table() //数据,行,列,函数 //在画图的时候一般都会使用
series 转 dataframe
to_frame()
dataframe遍历
for index, row in df.iterrows():
print row[“c1”], row[“c2”]

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值