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”]

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页