pandas高级操作总结
1.pandas中的列的分位数
# 查看列的分位数
import pandas as pd
# set columns type
my_df['col'] = my_df['col'].astype(np.float64) # computations for 4 quantiles : quartiles
bins_col = pd.qcut(my_df['col'], 4)
bins_col_label = pd.qcut(my_df['col'], 4).labels
分位数
2.多重聚合(组函数)
# 多重聚合(组函数)
# columns settings
grouped_on = 'col_0' # ['col_0', 'col_2'] for multiple columns
aggregated_column = 'col_1' ### Choice of aggregate functions
## On non-NA values in the group
## - numeric choice :: mean, median, sum, std, var, min, max, prod
## - group choice :: first, last, count
# list of functions to compute
agg_funcs = ['mean', 'max'] # compute aggregate values
aggregated_values = my_df.groupby(grouped_on)[aggregated_columns].agg(agg_funcs) # get the aggregate of group
aggregated_values.ix[group]
多重聚合
3.使用自定义函数进行聚合
# 使用自定义函数进行聚合
# columns settings
grouped_on = ['col_0']
aggregated_columns = ['col_1'] def my_func(my_group_array):
return my_group_array.min() * my_group_array.count() ## list of functions to compute
agg_funcs = [my_func] # could be many # compute aggregate values
aggregated_values = my_df.groupby(grouped_on)[aggregated_columns].agg(agg_funcs)
自定义函数进行聚合
4.在聚合的dataframe上使用apply
# 在聚合的dataframe上使用apply
# top n in aggregate dataframe
def top_n(group_df, col, n=2):
bests = group_df[col].value_counts()[:n]
return bests # columns settings
grouped_on = 'col_0'
aggregated_column = 'col' grouped = my_df.groupby(grouped_on)
groups_top_n = grouped.apply(top_n, aggregated_column, n=3)
5.移动平均
# 移动平均
import numpy as np ret = np.cumsum(np.array(X), dtype=float)
ret[w:] = ret[w:] - ret[:-w]
result = ret[w - 1:] / w # X: array-like
# window: int
移动平均
6.组数据的基本信息
# 组数据的基本信息
# columns settings
grouped_on = 'col_0' # ['col_0', 'col_1'] for multiple columns
aggregated_column = 'col_1' ### Choice of aggregate functions
## On non-NA values in the group
## - numeric choice : mean, median, sum, std, var, min, max, prod
## - group choice : first, last, count
## On the group lines
## - size of the group : size
aggregated_values = my_df.groupby(grouped_on)[aggregated_column].mean()
aggregated_values.name = 'mean' # get the aggregate of group
aggregated_values.ix[group]
组数据的基本信息
7.数据组的遍历
# 数据组的遍历
# columns settings
grouped_on = 'col_0' # ['col_0', 'col_1'] for multiple columns grouped = my_df.groupby(grouped_on) i = 0
for group_name, group_dataframe in grouped:
if i > 10:
break
i += 1
print(i, group_name, group_dataframe.mean()) ## mean on all numerical columns
8.最大互信息数
# 最大互信息数
import numpy as np matrix = np.transpose(np.array(X)).astype(float)
mine = MINE(alpha=0.6, c=15, est="mic_approx")
mic_result = []
for i in matrix[1:]:
mine.compute_score(t_matrix[0], i)
mic_result.append(mine.mic())
return mic_result
最大互信息数
9.pearson相关系数
import numpy as np matrix = np.transpose(np.array(X))
np.corrcoef(matrix[0], matrix[1])[0, 1] # X: array-like
# https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.corrcoef.html
pearson相关系数
10.自定义聚合函数
# 自定义聚合函数
def zscore(x):
return (x - x.mean()) / x.std() my_df['zscore_col'] = my_df.groupby(grouped_on)[aggregated_column].transform(zscore)
自定义聚合函数
11.标准聚合使用groupby
# 标准聚合使用groupby
# columns settings
grouped_on = 'col_1'
aggregated_column = 'col_0' ### Choice of aggregate functions
## On non-NA values in the group
## - numeric choice : mean, median, sum, std, var, min, max, prod
## - group choice : first, last, count
my_df['aggregate_values_on_col'] = my_df.groupby(grouped_on)[aggregated_column].transform(lambda v: v.mean())
标准聚合使用groupby
12.使用自定义函数设值
# 使用自定义函数设值
def to_log(v):
try:
return log(v)
except:
return np.nan
my_df['new_col'] = my_df['col_0'].map(to_log)
使用自定义函数设值
13.使用复杂函数设值
# 使用复杂的函数设值
import numpy as np
def complex_formula(col0_value, col1_value):
return "%s (%s)" % (col0_value, col1_value) my_df['new_col'] = np.vectorize(complex_formula)(my_df['col_0'], my_df['col_1'])
使用复杂函数设值
14.使用字典dict设值
# 使用字典dict设值
gender_dict={'男':1,'女':2}
df['gender'] = df['gender'].map(gender_dict)
使用字典设值
pandas高级操作总结的更多相关文章
- 数据分析06 /pandas高级操作相关案例:人口案例分析、2012美国大选献金项目数据分析
数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 目录 数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 1. ...
- pandas高级操作
pandas高级操作 import numpy as np import pandas as pd from pandas import DataFrame,Series 替换操作 替换操作可以同步作 ...
- 数据分析05 /pandas的高级操作
数据分析05 /pandas的高级操作 目录 数据分析05 /pandas的高级操作 1. 替换操作 2. 映射操作 3. 运算工具 4. 映射索引 / 更改之前索引 5. 排序实现的随机抽样/打乱表 ...
- Pandas高级教程之:GroupBy用法
Pandas高级教程之:GroupBy用法 目录 简介 分割数据 多index get_group dropna groups属性 index的层级 group的遍历 聚合操作 通用聚合方法 同时使用 ...
- [Session] SessionHelper2---C#关于Session高级操作帮助类 (转载)
点击下载 SessionHelper2.rar 这个类是关于Session的一些高级操作1.添加时限制时间2.读取对象3.读取数据等等看下面代码吧 /// <summary> /// 联系 ...
- cassandra高级操作之索引、排序以及分页
本次就给大家讲讲cassandra的高级操作:索引.排序和分页:处于性能的考虑,cassandra对这些支持都比较简单,所以我们不能希望cassandra完全适用于我们的逻辑,而是应该将我们的逻辑设计 ...
- pandas小记:pandas高级功能
http://blog.csdn.net/pipisorry/article/details/53486777 pandas高级功能:面板数据.字符串方法.分类.可视化. 面板数据 {pandas数据 ...
- MySQL学习笔记_9_MySQL高级操作(上)
MySQL高级操作(上) 一.MySQL表复制 create table t2 like t1; #复制表结构,t2可以学习到t1所有的表结构 insert into t2 ...
- MySQL学习笔记_10_MySQL高级操作(下)
MySQL高级操作(下) 五.MySQL预处理语句 1.设置预处理stmt,传递一个数据作为where的判断条件 prepare stmt from "select * from table ...
随机推荐
- ARM的体系结构与编程系列博客——ARM处理器系列介绍
ARM处理器系列介绍 现在到了3月,过年过得过于舒服了.系列博客也停更了近半月,我果然是个慢(lan)性(gui)子,那么趁着到校的第一天晚上,就写一篇博客来继续我的系列博客了!众所周知,ARM处理器 ...
- CUBA 7 新特性 (下篇)
上篇我们主要介绍了 CUBA 7 中前端的一些主要功能.这篇我们介绍一下中间件的一变化和新特性. 中间件功能 前面关于新的界面 API 的描述内容比我预期的要多许多,所以在这一节,我会尽量简单点说! ...
- [BZOJ 2839]集合计数
Description 题库链接 有 \(2^n\) 个集合,每个集合只包含 \([1,n]\) ,且这些集合两两不同.问有多少种选择方法(至少选一个),使得这些集合交集大小为 \(k\) . \(0 ...
- [HNOI 2018]寻宝游戏
Description 题库链接 给出 \(n\) 个 \(m\) 位的二进制数,在每一个二进制数间插入一个 & 或 | ,第 \(0\) 个数为 \(0\) , \(0,1\) 间也要插入符 ...
- UIKit 框架之UISearchBar、UITableViewController
// // tableViewController.m // tableVC // // Created by City--Online on 15/6/1. // Copyright (c) 201 ...
- Web服务的调用
1.创建服务引用 例如:天气预报 2.在代码添加引用空间 TvProgram.ChinaTVprogramWebService tp = new TvProgram.ChinaTVprogramWeb ...
- 机器学习classification_report方法及precision精确率和recall召回率 说明
classification_report简介 sklearn中的classification_report函数用于显示主要分类指标的文本报告.在报告中显示每个类的精确度,召回率,F1值等信息. 主要 ...
- include,forward和param指令
- EL表达式无法获取Spring MVC的Model封装好的数据解决方法
1.在spring-mvc的配置文件中已经配置jsp的视图解析器 2.在Controller中使用Model的addAttribute方法添加属性name,msg 3.在jsp页面中使用${msg}取 ...
- 设计模式学习——工厂模式(Factory Pattern)
1.有一个工厂,专门生产不同品牌的汽车.当有人需要从此工厂提货的时候,只需要告诉他,要什么品牌的,就可以了,并不关心这些车是怎么生产出来的. 2.以上方式,如果增加品牌的时候,也要修改工厂,有点麻烦. ...