龙空技术网

python pandas 数据分组计数统计

蚊子不游戏 691

前言:

眼前你们对“15乘以1525乘以2535乘以35找规律”都比较关心,兄弟们都需要了解一些“15乘以1525乘以2535乘以35找规律”的相关知识。那么小编在网上网罗了一些关于“15乘以1525乘以2535乘以35找规律””的相关资讯,希望看官们能喜欢,朋友们一起来了解一下吧!

前几天头条的“指在弦上”问我一个关于TXT统计数据及分组的问题,想让我分享一下相关的脚本,私信中说不太清楚,留了邮箱,让把原始数据样本发给我,同时把希望的结果也说明一下,大概是这样子的:

上面这个是他的原始数据,是一个逗号分隔的TXT。

他希望能完成这样的:

而他在ACCESS里用SQL是这样完成的:

今天下午刚好有时间,就帮这位朋友写了一个Python的脚本,主要是用到pandas库,思路是确定“地市”里的惟一值,然后对各个消费区间进行计数,最后输出结果,源代码如下:

# -*- coding: utf-8 -*-

"""

Created on Thu Sep 20 16:20:40 2018

@author: chenht40

"""

import pandas as pd # 导入pandas

df = pd.read_table('H:\python-group-select\data.txt', sep = ',') # 先读取文件

city = df['地市'].value_counts() # 不同地市数据总数计数,生成Series

target = pd.DataFrame(city) # 将Series转为DataFrame

target.columns = ['总数'] # 更改列名为“总数”

yuan015 = df.loc[(df['本月消费'] > 0) & (df['本月消费'] <= 15) ] # 对0-15元的进行筛选

target['0-15元'] = yuan015['地市'].value_counts() # 将0-15元计数后加入后一列

yuan1525 = df.loc[(df['本月消费'] <= 25) & (df['本月消费'] > 15)] # 对15-25元的进行筛选

target['15-25元'] = yuan1525['地市'].value_counts() # 将15-25元计数后加入后一列

yuan2535 = df.loc[(df['本月消费'] <= 35) & (df['本月消费'] > 25)] # 对25-35元的进行筛选

target['25-35元'] = yuan2535['地市'].value_counts() # 将25-35元计数后加入后一列

yuan3545 = df.loc[(df['本月消费'] <= 45) & (df['本月消费'] > 35)] # 对35-45元的进行筛选

target['35-45元'] = yuan3545['地市'].value_counts() # 将35-45元计数后加入后一列

yuan45 = df.loc[df['本月消费'] > 45] # 对45元以上的进行筛选

target['45元以上'] = yuan45['地市'].value_counts() # 将5元以上计数后加入后一列

target.fillna(0, inplace=True) # 对空值用0进行填充

print (target)

target.to_csv('分组筛选统计.csv', encoding = 'gbk') # 将结果输出

最后用Python输出的结果是这样的:

其实这段代码还可以优化,等有空了再优化一下。

标签: #15乘以1525乘以2535乘以35找规律