数据科学入门与实战:玩转pandas之七数据分箱技术,分组技术,聚合技术

首先导入相关包

import pandas as pd
import numpy as np
from pandas import Series,DataFrame
#数据分箱技术Binning

数据分箱技术

创建一个数列,长度为20,数值从25到100

score_list = np.random.randint(25,100,size=20)
print(score_list)

在这里插入图片描述

设置区间bins,并统计落入各区间的个数

#统计落入各区间的个数,突然想到可以用到直方图统计
bins = [0,59,70,80,100]
score_cut = pd.cut(score_list,bins)

打印一下score_cut

print(score_cut)

在这里插入图片描述
把每个分箱的个数统计出来~

rint(pd.value_counts(score_cut))

在这里插入图片描述
创建一个空的DateFrame

df = DataFrame()

给加一个score列~

df['score'] = score_list

rands随机生成三个字符串

df['student'] = [pd.util.testing.rands(3) for i in range(20)]
df['Categories'] = pd.cut(df['score'],bins)
print(df)

打印结果
在这里插入图片描述
给每个箱子一个标签,low,ok,good,great

df['Categories'] = pd.cut(df['score'],bins,labels=['Low','Ok','Good','Great'])
print(df)

在这里插入图片描述

数据分组技术

df = pd.read_csv('city_weather.csv')
print(df)

看看数据在这里插入图片描述
通过city分组

g = df.groupby(df['city'])
print(g)

打印结果

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000018242F94F70>

分组

#分组
print(g.groups)
{'BJ': Int64Index([0, 1, 2, 3, 4, 5], dtype='int64'), 'GZ': Int64Index([14, 15, 16, 17], dtype='int64'), 'SH': Int64Index([6, 7, 8, 9, 10, 11, 12, 13], dtype='int64'), 'SZ': Int64Index([18, 19], dtype='int64')}

打印下

df_bj = g.get_group('BJ')
print(df_bj)
print('-'*100)
print(df_bj.mean())

在这里插入图片描述
分别对gz sh …求平均值,最大值

print(g.mean())

在这里插入图片描述

print(g.max())

在这里插入图片描述
把g用list改变下

print(list(g))

在这里插入图片描述
然后将它变成一个字典

print(dict(list(g)))

在这里插入图片描述

看一下这个字典中key值为北京的value

print(dict(list(g))['BJ'])

在这里插入图片描述
…这样看看

#name 和group_df是自己命名的..因为有元组
for name,group_df in g:
    print(name)
    print('-'*100)
    print(group_df)

在这里插入图片描述

数据聚合技术

df = pd.read_csv('city_weather.csv')
g = df.groupby('city')
print(dict(list(g)))

在这里插入图片描述

print(g.agg('min'))
print(g.min())

在这里插入图片描述

def foo(attr):
    return attr.max() - attr.min()
print(g.agg(foo))#得到新的DateFrame

在这里插入图片描述

print(df)
g_new = df.groupby(['city','wind'])
print(g_new.groups)

在这里插入图片描述

print(g_new.get_group(('BJ',3)))

在这里插入图片描述

for (name,tem),group in g_new:
    print(name,tem)
    print(group)

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
    目前数据分析已经深入到各个行业中,尤其以Python为工具的数据分析和数据挖掘将越来越流行,但在数据分析和挖掘中,最消耗时间的就是数据处理了,高效的数据处理技能已经成为工作中必不可少的技能之一了。熟练掌握和运用Python对数据进行高效的处理,可以大大提高数据分析和数据挖掘的效率。    Python数据处理实战: 基于真实场景的数据(Python数据处理和特征工程)作为Python数据清洗实战入门课程的升级版,本课程以真实的场景数据为案例进行教学,包括征信,电商,零售数据等, 本课程由浅入深详细讲解Python数据处理和特征工程在真实项目中的运用, 本课程专门针对想深入学习Python数据处理而量身定做的课程,是讲师在多年真实项目和实践工作的总结,涵盖实际项目中主要的知识点,内容详尽,代码可读性及实操性强。     掌握好数据处理和特征工程,有利于今后从事或者数据分析或者数据挖掘,以及解决工作和项目中遇到的各种数据处理问题。课程目标:1.熟悉数据处理的流程和方法 2.熟练掌握pandas和numpy的运用 3.举一反三,能够独立完成数据分析中数据处理阶段的任务 4.提高数据处理能力,在项目中能够事半功倍课程定位: 1.   零基础学员或者有一定基础学员、大中院校学生;2.   在职从事数据分析相关工作以及打算行Python数据分析人员; 3.   对Python有兴趣人群。 课程特色   1.   相关代码老师课堂上全部打出,方便理解和记忆;   2.   提供源代码和数据方便同学们预习和复习;   3.   使用真实的数据进行教学,紧贴实战,避免枯燥的理论;   4.   在教学过程中,尽可能多的使用图表教学;  5.    每一个章节后面都配有相关练习题目以及习题答案,方便同学们进行自我测试。 课程学习环境: Python3.7版本 讲师介绍:    Peter, 某科技公司高级量化分析师,金融数学硕士毕业,擅长数据分析和数据挖掘,在公司长期从事机器学习建模,拥有多家银行,消费金融和互联网金融风控建模经验。熟练掌握Python编程软件和数据库等软件.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值