python数据分析及处理案例技巧11-20(基于jupyter) - Go语言中文社区

python数据分析及处理案例技巧11-20(基于jupyter)


案例11:cut函数与数据分组

1)cut的用法

640?wx_fmt=png&wxfrom=5&wx_lazy=1

设置包含最小值,

不包括左,包括右,可用right = False包括左,不包括右

640?wx_fmt=png&wxfrom=5&wx_lazy=1显示成组别格式

640?wx_fmt=png&wxfrom=5&wx_lazy=1

数值统计:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 还可以不指定面元的界限,直接传入一个整数参数,cut()会按照指定的数字,将元素划分为相应的几部分。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

2)qcut用法

而qcut()可以保证每个面元的数量相同

0?wx_fmt=png

按分位数切分

0?wx_fmt=png

3)自定义分组函数

0?wx_fmt=png

使用案例

0?wx_fmt=png

文本格式,方便复制:

#定义分组函数

def binning(col,cut_points,labels=None):

    #要分组的连续变量的最大值和最小值

    minval=col.min()

    maxval=col.max()

    #利用最大值和最小值创建分箱点的的列表

    break_points=[minval]+cut_points+[maxval]

    #处理标签,如果没有标签则使用0、1...n-1

    if not labels:

        labels=range(len(cut_points)+1)

    #使用pandas的cut功能分箱

    colbin=pandas.cut(col,bins=break_points,labels=labels,include_lowest=True)

    return colbin

#使用案例

cut_points=[20,30,50]

labels=["low","midium","high","very high"]

data["age_group"]=binning(income["age"],cut_points,labels)

print(pandas.value_counts(data["age_group"],sort=False))

案例12:绘图案例

0?wx_fmt=png

案例13:dataframe转为list格式

income数据

0?wx_fmt=png

转化后的数据

0?wx_fmt=png

案例14:字典整理,删除部分key值

0?wx_fmt=png

删除上述内容不是字段的key

程序:

0?wx_fmt=png

案例15:agg函数内调用的函数只能对分组进行聚合使用

0)数据源及分组变量:

0?wx_fmt=png

计算分组值

1)统计计算不同的分组值

0?wx_fmt=png

2)设置新的变量名称

0?wx_fmt=png

3)可以计算特殊的函数,如lamda,还可以使用字符串作为一个function


0?wx_fmt=png


案例16:collections 的counter模块,设置一个简单的计数器,统计字符出现的个数:

0?wx_fmt=png

collections是Python内建的一个集合模块,提供了许多有用的集合类。

collections的常用类型有:

计数器(Counter)

双向队列(deque)

默认字典(defaultdict)

有序字典(OrderedDict)

可命名元组(namedtuple)

使用以上类型时需要导入模块 from collections import *


案例17:针对一个单词,删除,替换,交换位置等

0?wx_fmt=png

多次循环案例参考:

0?wx_fmt=png


案例17:date_range日期序列

参数:

pandas.date_range(start=None, end=None, periods=None, freq=’D’, tz=None, normalize=False, name=None, closed=None, **kwargs)

  • start:string或datetime-like,默认值是None,表示日期的起点。

  • end:string或datetime-like,默认值是None,表示日期的终点。

  • periods:integer或None,默认值是None,表示你要从这个函数产生多少个日期索引值;如果是None的话,那么start和end必须不能为None。

  • freq:string或DateOffset,默认值是’D’,表示以自然日为单位,这个参数用来指定计时单位,比如’5H’表示每隔5个小时计算一次。

  • tz:string或None,表示时区,例如:’Asia/Hong_Kong’。

  • normalize:bool,默认值为False,如果为True的话,那么在产生时间索引值之前会先把start和end都转化为当日的午夜0点。

  • name:str,默认值为None,给返回的时间索引指定一个名字。

  • closed:string或者None,默认值为None,表示start和end这个区间端点是否包含在区间内,可以有三个值,’left’表示左闭右开区间,’right’表示左开右闭区间,None表示两边都是闭区间。


案例:

指定开始和结束日期:

0?wx_fmt=png

指定日期跨度:

0?wx_fmt=png

随机产生时间序列数据

0?wx_fmt=png

案例18:统计输出的内容数量0?wx_fmt=png

案例19:sklearn进行简单回归分析

1)导入数据源

0?wx_fmt=png

2)训练

0?wx_fmt=png

3)计算均方误差函数

0?wx_fmt=png

案例20:sklearn进行逻辑回归的步骤

1)导入数据(打乱数据的随机数)

0?wx_fmt=png

0?wx_fmt=png

2)区分测试和训练数据,随机抽取80%

0?wx_fmt=png

3)预测准确性计算

0?wx_fmt=png

因为predict_proba返回的是一个两列的数组,数组的每一行代表的是对一个样本的预测结果,有多少样本就有多少行,第一列代表该样本不会发生的概率,第二列代表的是该样本会发生的概率。

而计算fpr、tpr需要的是数组中的第二列的数据。

0?wx_fmt=png


4)绘制roc曲线、计算最大的auc

0?wx_fmt=png

结果:

0?wx_fmt=png


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/PbGc396Dwxjb77F2je/article/details/78786978
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-05-07 22:32:06
  • 阅读 ( 1051 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢