Pandas
cyber_1987
专注数据的数据分析师,以Python、VBA、Power query为主
展开
-
Pandas:关于pandas中筛选的效率测试
前言上一篇说到,最近我在做地址匹配的一个竞赛,目前陷入了瓶颈,所以想从pandas效率上玩玩。比如给出一个切分好的地址列表,如[‘福建省’, ‘厦门市’, ‘思明区’, ‘梧村街道’, ‘湖滨南路’],需要将这个地址在140+万条数据的地址库里筛选出满足条件的所有地址,应该怎么做呢?一、常规方法最常规的方法肯定是直接使用pandas里面的筛选方法,如下面代码所示可以看到用时大概在843毫秒左右这个方法的好处是书写简单,无脑&就可以了,但是如果当中某个对象可能是空的而且需要同时对很多地址原创 2020-08-09 08:55:05 · 3333 阅读 · 1 评论 -
Pandas:把一份清单数据按时间序列转为dict、list的混合样式
前言:标题很难懂,直接上个例子吧。上图为原始数据,想要转为下面的格式:{‘用户1’: [{第1天的发帖量,第2天的发帖量…第31天的发帖量}, {第1天的投票数合计,第2天的投票数合计…第31天的投票数合计}, {第1天的收入合计,第2天的收入合计…第31天的收入合计}]}很复杂吧,我也不明白整理成这样格式的意义是什么=,=下面的代码只把用户和收入的dict做出来了,如果要把投票数和发帖量结合起来,使用pandas里的concat,外面再套一层to_dict就可以了,方法一样,不想多写~~代码原创 2020-05-20 15:01:12 · 477 阅读 · 0 评论 -
Python:14个常用数据清洗代码
常用库导入import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings("ignore")pd.options.display.max_columns = None #显示所有列pd.set...原创 2019-12-23 15:16:51 · 13506 阅读 · 5 评论 -
Pandas:一个apply+lambda的小技巧
前言:有两张表,有一个关键字段作为连接,要比对两张表里某个值的变化,用Python该怎么写呢?excel很简单,vlookup+if即可;SQL里的话,就是left join,然后再case whenpython里的思路也是一样,我们需要merge后再apply以下表为例如果不用lambda,只用apply的话,代码如下:import pandas as pddef get_va...原创 2019-12-19 10:35:04 · 1635 阅读 · 0 评论 -
CDA LEVEL2 大纲解析案例题Python实现代码
数据下载:http://exam.cda.cn/static/exam_attachment/L2jmjxshiti.zip导入库import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings...原创 2019-12-16 11:04:28 · 2225 阅读 · 0 评论 -
Pandas:用Python做日报(重构)
之前的日报是通过Python+VBA+Power BI三者结合做出来的,有人提出来是否可以全部用Python来实现。所以尝试了两天,理论上是可以实现的,但是结合在一起会比较累,而且Power Query虽然用起来会有点卡,但是可视化拖曳操作真心方便,维护也简单,所以做了一半放弃了。目前已实现功能:1、单份清单的数据处理(merge、昨日数据提取、pivot_table等);2、门店维度的日...原创 2019-11-20 09:22:14 · 2194 阅读 · 4 评论 -
Pandas等库在Anaconda环境下打包巨大的解决方法
我的python是使用anaconda集成包的,虽然很方便,但是之前写的很多程序,因为pandas、openpyxl等库通过pyinstaller打包会出现很多奇葩问题,而且即使打包出来也会很大(有pandas的情况下大概200+M)。之前群里小伙伴有提示,通过虚拟环境可以解决这个问题,所以花了半天时间测试了各种情况,最终终于解决了这个问题。我今天总共测试了3种方法,参考了大量的博客,可能在别...原创 2019-11-18 14:17:55 · 4865 阅读 · 0 评论 -
Pandas:写了一个简易的销量异常检测器
前言:快要换部门了,接下来的岗位会变成AI开发,所以在走之前为现在的部门编最后一个程序。程序功能:检测每天下载下来的清单数据是否有异常,异常的判定原则是:1、昨日销量为0;2、昨日销量非常少(少于平均值-1.5个标准差)具体代码如下:import pandas as pdimport numpy as npfrom datetime import timedeltafrom dat...原创 2019-11-14 10:57:31 · 789 阅读 · 0 评论 -
Pandas:一种很好的时间序列模型滑窗技巧
一、前言最近在玩一个时间序列的竞赛,里面有个大佬分享了他的源码,里面有一块滑窗的操作很厉害,我之前要么使用For循环来遍历,要么使用Pandas自带的shift+For循环,但是大佬的滑窗技巧是先对一些关键字段(比如人名、地名、物品型号)等进行编码,然后做一个组合编码,再通过-1、-2等操作获得前一天、两天的编码序号,最后通过Map的方式来匹配,效率那是相当的高。我做了一下实验,同样的一些数据...原创 2019-09-30 10:32:36 · 1895 阅读 · 0 评论 -
Python:写了一个简易的同/环比分析器
前言:数据分析中,传统描述性统计(即没有用到machine learning)还是在日常工作中占了很大一部分比重(或者说99%。。。),而同/环比分析更是占了绝大多数而传统处理中,一般都是用excel的vlookup先处理好数据并合并表,再用数据透视表进行分析,这样的操作虽然也很快,但是感觉很无脑;虽然现在可以用power query对上述工作也进行模板化,但是具体的分析还是稍显薄弱(比如要筛选...原创 2019-07-20 21:23:47 · 2583 阅读 · 1 评论 -
Python:上海三大运营商市场口碑如何?数据分析告诉你
根据国家规定,2019年11月底前在全国实施“携号转网”,上海自然也不会例外。对于上海三大运营商来说,“携号转网”既是一个挑战,也是一个机遇,能否抓住对于接下去3年的发展至关重要。在上海本土居民中,三大运营商的市场口碑到底如何,也将是影响“携号转网”结果的一个重要参考指标。本文通过爬虫技术,对本地部分网民对上海三大运营商的帖子主题进行收集并分析,给大家呈现一个最直观的结果。一、目标寻找本次爬取...原创 2019-07-13 16:04:38 · 2368 阅读 · 3 评论 -
Pandas学习(7.数据聚合与分组操作)
import pandas as pdimport numpy as np'''7.1 GroupBy机制''''''假设想要根据所属部门,计算每个部门的月人均移动效能'''daily_report = pd.read_excel(r"C:\Users\Administrator\Desktop\Pandas学习\日报.xlsx", '专营工号')grouped_store = dai...转载 2019-05-17 16:02:31 · 705 阅读 · 0 评论 -
Pandas学习(1、pandas数据结构介绍)
一、Seriesimport pandas as pd'''pandas数据结构介绍'''#1、Series'''Series是一种一维的数组型对象,它包含了一个值序列(类似NumPy中的类型),并且包含了数据标签(也就是index-索引)'''obj = pd.Series([4, 7, -5, 3])# print(obj)'''0 41 72 -53...转载 2019-04-12 14:30:40 · 181 阅读 · 0 评论 -
Pandas学习(2、pandas基本功能)
一、重建索引import pandas as pdimport numpy as np#2.1重建索引'''Series调用reindex方法时,会将数据按照新的索引进行排列,如果某个索引值之前并不存在,则会引入缺失值'''obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c'])obj2 = obj.rein...转载 2019-04-16 10:51:15 · 259 阅读 · 0 评论 -
Pandas学习(5.1、处理缺失值)
import pandas as pdimport numpy as np'''5.1 处理缺失值''''''对于数值型数据,pandas使用浮点值NaN(Not a Number)来表示缺失值。在pandas中,采用了R语言中的编程管理,将缺失值成为NA,意思是not available。在统计学应用中,NA数据可以是不存在的数据或者是存在但不可观察的数据(例如在数据收集过程中出现了问...转载 2019-04-26 14:18:29 · 229 阅读 · 0 评论 -
Pandas学习(5.2、数据清洗与准备)
'''5.2.1 删除重复值'''# data = pd.DataFrame({'k1': ['one', 'two'] * 3 + ['two'],# 'k2': [1, 1, 2, 3, 3, 4, 4]})'''DataFrame的duplicated方法返回的是一个布尔值Series,这个Series反映的是每一行是否存在重复情况:'''#...转载 2019-04-26 14:20:37 · 352 阅读 · 0 评论 -
Pandas学习(5.3 字符串对象方法,含正则表达式)
import pandas as pd'''5.3.1 字符串对象方法''''''在很多字符串处理和脚本应用中,内建的字符串方法是足够的。例如,一个逗号分隔的字符串可以使用split方法拆分成多块:'''val = 'a,b, guido'# print(val.split(',')) #['a', 'b', ' guido']'''split常和strip一起使用,用于清除空格...转载 2019-04-26 14:22:17 · 5513 阅读 · 1 评论 -
Pandas学习(3、描述性统计的概述与计算)
一、描述性统计的概述与计算import pandas as pdimport numpy as np'''pandas对象装备了一个常用数学、统计学方法的集合。其中大部分属于归约或汇总统计的类别,这些方法从DataFrame的行或列中抽取一个Series或一系列值的单个值(如总和或平均值)。与NumPy数组中的类似方法相比,它们内建了处理缺失值的功能。'''df = pd.DataFra...转载 2019-04-17 21:35:22 · 452 阅读 · 0 评论 -
Pandas学习(4、数据载入、存储及文件格式)
一、文本格式数据的读写import pandas as pdimport numpy as np'''6.1 文本格式数据的读写''''''表:Pandas的解析函数函数 描述read_csv 从文件、URL或文件型对象读取分隔好的数据,逗号是默认分隔符read_table 从文件、URL或文件型对象读取分隔好的数据,制表符('\...转载 2019-04-23 20:05:42 · 1706 阅读 · 0 评论 -
Python:小试牛刀,用Pandas做日报
前言:之前一直用PQ和VBA来做日报,最近学了pandas,想试试看用pandas来做需要多久。花了一整个白天,才把大概的日报写完了(用pq的话大概只要1-2个小时,又一次证明了pq是多么伟大的发明啊!),本来以为要很多代码行,但实际操作下来还好,出去注释不超过150行,当然还有很多地方需要优化,总代码量应该能保持在300行以内。数据源:报表结果:具体代码:import pandas...原创 2019-04-28 21:20:50 · 1356 阅读 · 7 评论 -
Pandas:一些常用的代码(不断更新)
学了一段时间机器学习,发现很多代码都看不懂,或者看懂了过一会又忘了,反映出自己基本模块知识的匮乏,决定还是先回过头把Numpy、Pandas、Matplotlib学习好基础再继续。弄几个篇幅,专门讲这三个模块的一些常用代码,希望后续自己不要再忘了!2019年4月1日使用表格如下图所示:import pandas as pdimport numpy as npexcel = pd.r...原创 2019-04-01 20:36:27 · 1251 阅读 · 0 评论