前言:
眼前你们对“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输出的结果是这样的:
其实这段代码还可以优化,等有空了再优化一下。