Python神器
文章平均质量分 65
数据分析师之家
繁华历尽,方知平凡是真;回首沧桑,只想平淡如水。
展开
-
Jupyter notebook转化为html文件,隐藏代码块,生成自动化报告
使用ppt制作周报或月报是一项非常耗费时间的活,不过做业务分析的同学还是免不了要用PPT,其他的自动化报告工具又不会,只能死磕PPT。数据分析师就不一样了,自动化报告可以选择R Markdown或者使用Jupyter notebook与PyEcharts强强联合,生成自动化报告。1.将notebook转化为html文件notebook的前端页面集成了导出文件为html的功能,直接使用这个功能,导出的html文件中呢会包含代码块。2. 隐藏html文件中的code如果是生成自动化报告,代码块就.原创 2021-04-23 16:35:50 · 16638 阅读 · 4 评论 -
python中rolling窗口函数滚动计算一个日期前10天的累计和
论高效利用互联网工具检索信息的重要性。千万不要小瞧了互联网信息检索工具的使用能力,作为一个半生码农的数据分析师,代码又不是天天写,你总是记不住各种功能的函数名称?可以理解,并且很正常!原谅自己吧~但如果情况是:同样的问题你描述不清楚,再如此丰富的信息海洋中,无法快速找到解决问题的参考案例。一个简单的问题,在网上搜呀搜,找呀找,耗费大量时间和精力才能找到一篇好帖子作参考最终解决问题。那你还是要担忧一下自己!背景描述想要构建一个特征,基于每天都值去计算距离当期前x天都一个累计值,之所以说是前x天.原创 2021-02-22 18:40:37 · 3585 阅读 · 0 评论 -
ValueError: time data ‘nan‘ does not match format ‘%Y-%m-%d %H:%M:%S‘
在尝试把dataframe的一列数据类型由字符串类型转为日期类型时,出现以下报错信息:“ValueError: time data ‘nan’ does not match format ‘%Y-%m-%d %H:%M:%S’”1. 尝试了以下动作,无果data['结清时间'].apply(lambda x :datetime.datetime.strptime(str(x),'%Y-%m-%d %H:%M:%S') if x != np.NaN)2. 参考了以下操作,很棒封装一个函数,在进原创 2021-01-07 09:51:38 · 14745 阅读 · 3 评论 -
Python中plot()画图添加数据标签,显示点对应的数值
创建子图的好处:每个子图可以单独操作,想画啥就画啥各个子图之间可以共享坐标轴,便于同一量纲去比较数值的大小fig,((ax1,ax2,ax3,ax4,ax5,ax6)) = plt.subplots(1,6,figsize=(22,4),sharex=True,sharey=True)##设定子图间距 , left < right, top > bottom, 数字表示窗口大小的比例(如下则子图间距为窗口大小的1%) plt.subplots_adjust(left=0, top=原创 2020-06-03 10:12:38 · 51847 阅读 · 0 评论 -
Python中的位置参数(*args)和关键字参数(**kwargs)
在Python中:位置参数:会被打包成元组,元组的元素是不可改变的,会根据元组中元素对应关系直接赋值关键字参数:会被打包成字典,字典就是key-value,会根据关键字及其取值完成对应关键字参数的赋值In [332]: def say_hello_then_call_f(f, *args, **kwargs): ...: print('args is', args) ...: print('kwargs is', kwargs) ...:原创 2020-05-20 16:41:05 · 850 阅读 · 0 评论 -
Python中的匿名函数Lambda lambda x的用法
使用pandas时经常对dataframe的一列进行特别操作,这时候就会用到lambda来实现。比如:lambda x: x.replace(’ ‘,’’)可以实现对于一列中的每一个字符串元素实现去除空格的处理。lambda xlambda本质上是个函数功能,是个匿名的函数,表达形式和用法均与一般函数有所不同。普通的函数可以写简单的也可以写复杂的,但lambda函数一般在一行内实现,是个非常简单的函数功能体。那么,什么时候需要将函数写成lambda形式?函数功能简单,一句话就可以实现偶而性使用原创 2020-05-20 15:33:17 · 18748 阅读 · 0 评论 -
数据分析师也要学会写漂亮的Python函数
在编程语言中,写函数就像是制作一个魔术箱,进去一个东西,出来另外一个东西,像是变了个魔术一样神奇。但作为数据分析师,真是不爱写函数,清洗数据?那就按部就班的做就好了,见招拆招,为啥要费脑筋写那个函数呢?写函数的优点结构更清晰,可读性好,降低修改维护成本代码复用性高,可提升效率教你写简单的函数写一个实现数据清洗处理的函数,能够让这些脏脏的字符串,洗白白了输出,显示为整洁的首字母大写,其他字母小写的规整的字符串。# 这是一些待清洗处理的字符串In [245]: strings = [' A原创 2020-05-20 11:19:22 · 421 阅读 · 0 评论 -
Python中zip实现元素配对压缩、解压缩
zip可以实现多个序列(列表、元组、集合)元素的“配对”,生成一个新的元组列表:In [128]: s1 = ('name','age','school') In [129]: s2 = ('Jack',19,'se') In [130]: zip(s1,s2)原创 2020-05-18 15:54:27 · 530 阅读 · 0 评论 -
Python中序列函数enumerate()与dict()的巧妙使用
enumerate()是Python内置的序列函数,可以实现对一个序列的迭代。这个序列可以是列表(list),也可以是集合(set),亦可以是元组(tuple)。以下是对元组这个序列的迭代输出。In [122]: s = ('hello','world',2020) In [123]: for i,v in enumerate(s): ...: print(i,v) ...:原创 2020-05-18 15:24:09 · 6224 阅读 · 0 评论 -
Python中通过help查看对象的方法描述
In [96]: help() Welcome to Python 3.8's help utility!If this is your first time using Python, you should definitely check outthe tutorial on the Internet at https://docs.python.org/3.8/tu原创 2020-05-18 14:45:38 · 455 阅读 · 0 评论 -
Python日期处理:日期转字符串 & 字符串转日期 & 两个日期相减
Python????️个叫datetime的模块(包),这个模块集成了3个主要的类型:datatime类型: 日期和时间date类型: 日期time类型: 时间1.认识3个主要的日期和时间类型打开Ipython,实践中学习。In [1]: from datetime import datetime,date,timeIn [3]: dt = datetime(2020,5,15,13,58) In [4原创 2020-05-15 14:47:25 · 20735 阅读 · 0 评论 -
None、Null与空字符‘‘什么区别
1. None表示空无一物,啥也没有存储。编程语言里采用None比如在python中None不是一个保留关键字,只是NoneType对象的一个实例。空就是空,它不是整型,不是浮点型,也不是字符串,就是一个NoneType。所以在使用len(None)时候会报错,因为NoneType没有字符串才有的方法。In [71]: type(None) Out[71]: NoneT原创 2020-05-13 16:33:12 · 15206 阅读 · 0 评论 -
Python里的%s和%d是什么意思
二元运算符 %1)%是一个二元运算符,在实数运算中用来实现取莫的操作,比如:In [53]: 5 % 2 Out[53]: 12) 除此之外%与格式字符叠加使用,可以实现参数格式化的功能,比如:In [55]: template = '%s is a lovely girl who is %.0f years old, living in %s Pro ..原创 2020-05-13 15:41:42 · 13292 阅读 · 0 评论 -
字符串前面加个r‘是什么意思
有时候可以看到字符串前面加了一个r‘,那么这个代表什么意思呢?在字符串的最左边加上r,是告诉解释器所有字符按照原本的样子进行解释In [48]: r'12\24' Out[48]: '12\\24'原字符串中有一个反斜杠,输出的是’12\24’,这里的一个反斜杠是转义字符,第二个反斜杠代表原本想要输出的那个反斜杠。如果想要展示反斜杠,必须要再加一个反斜杠进行转义,否则得原创 2020-05-13 15:07:04 · 11828 阅读 · 0 评论 -
name ‘iterable‘ is not defined 在python中判断一个对象是否可迭代
如果一个对象可迭代意味着可以通过for循环去操作处理它,那么在python中怎样判断一个对象是否可直接迭代?如何生成或将一个对象转化为可迭代的对象呢?1. 判断对象是否是迭代器(iterator)# 列表list对象In [9]: isinstance([1,2,3],Iterable) Out[9]: True# 集合set对象In [12]: isinstance((1,2,3),Iterable)原创 2020-05-13 13:56:34 · 3164 阅读 · 0 评论 -
dataframe日期按周、按月、按季度聚合
dataframe中的每一列都是一个Series对象,这个Series对象的index默认是从0开始,步长为1进行递增。如果你的dataframe中有一列是日期,对于其他列字段需要按照日期字段进行聚合的话,需要将待聚合列的Series对象index属性修改为该日期字段。关键是这个操作:offline_ratio = custs.offline_ratiooffline_ratio.inde...原创 2020-05-08 14:12:30 · 15602 阅读 · 0 评论 -
NameError: name ‘datetime‘ is not defined
sql脚本跑出的日期是通过substring()截取出来的,是字符串类型。在dataframe中需要调用日期函数做一个转化,将string转化为dataframe类型。offline.index = custs_to_orders['day_tm'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d'))使用这个语句的前提是from datetime...原创 2020-05-08 13:41:58 · 21825 阅读 · 0 评论 -
pandas如何在一个Excel文件中写入多个sheet页
要实现这个功能,需要借助于pandas的ExcelWriter()方法,参考如下:from impala.util import as_pandas# 把数据库中表字段写入到Excel文件中便于查看curs.execute("""describe ods.table1""")media = as_pandas(curs)curs.execute("""describe ods.tab...原创 2020-04-30 15:11:15 · 7072 阅读 · 0 评论 -
Glyph 26426 missing from current font.解决matplotlib画图中文字体乱码问题
1. 问题复现环境:Ipython 3.8import matplotlib.pyplot as plt import pandas as pddata = pd.read_csv('/Users/me/Documents/small_cust.csv') data['first_catg'].value_counts().plot()plt.show() 图是画出来了...原创 2020-04-18 15:29:52 · 46368 阅读 · 22 评论 -
python读取txt文件中的json数据
txt文本文件能存储各式各样数据,结构化的二维表、半结构化的json,非结构化的纯文本。存储在excel、csv文件中的二维表,都是可以直接存储在txt文件中的。半结构化的json也可以存储在txt文本文件中。最常见的是txt文件中存储一群非结构化的数据:今天只学习:从txt中读出json类型的半结构化数据import pandas as pdimport jsonf = o...原创 2019-10-21 17:16:12 · 16139 阅读 · 1 评论 -
list的append与extend方法的使用场景
list的append与extend方法的使用场景原创 2017-10-14 21:57:32 · 2884 阅读 · 0 评论 -
Anaconda---贴心的集成IDE,拿去不谢
Anaconda本意呢,是巨蟒的意思。是被发现于南美洲热带雨林中的一种体积庞大的、巨型蟒蛇。原创 2017-10-15 17:23:55 · 7374 阅读 · 0 评论 -
pandas基本操作,小锦囊一个
pandas基本操作,小锦囊一个原创 2017-10-15 17:34:01 · 418 阅读 · 0 评论 -
python日期与字符串互相转换,终于搞得领清了
python日期与字符串互相转换,终于搞得领清了原创 2017-10-15 17:39:43 · 23904 阅读 · 3 评论 -
JSON究竟是个啥
>如果点进来的刚巧是个高手,那......你就当是过来做个鉴定的吧。很多从事数据分析工作的伙伴都是从“最简单”的神器—Excel开始入门的,对编程语言、计算机世界的很多工具都不甚了解。要做结构化的数据,就赶紧跑去自学sql,学习sql server或是mysql数据库。要做半结构化、非结构化的数据又得去学习诸如mongo数据库的东西。>天天听对面的程序员小哥说我给你个打包个j...原创 2017-10-14 22:00:56 · 83918 阅读 · 17 评论 -
Pycharm如何配置运行参数
# run_cnn.py文件中主函数的代码段if __name__ == '__main__': if len(sys.argv) != 2 or sys.argv[1] not in ['train', 'test']: raise ValueError("""usage: python run_rnn.py [train / test]""")这个主函数在执行时...原创 2019-01-14 13:54:30 · 18379 阅读 · 1 评论 -
Python写入csv文件时出现空行
import csvflow = open('./my csv file.csv, 'w'')csv_writer = csv.writer(flow)for line in lines: csv_writer.writerow(line)这样的一段代码运行结束后,发现写入的csv文件中很多空行,准确的说是写一行空一行。解决办法是,在open()参数中将newline设置为空i...原创 2019-02-18 15:22:14 · 15644 阅读 · 3 评论 -
python中多层for循环跳出break与else
代码能力不甚强,只知道break可以跳出其所归属的最小循环体,并且接触到的一般都是小循环结束了,外面嵌套的大循环也就直接结束了,不会有其他操作。直到今天写这个需求,苦苦想了个把钟头才搞对,真是水平不高哈哈、找到了一个值,就即刻写入文件,终止循环所有的都找一遍,如果还是找不到,就写入空值就是这么一个需求,改了半天才改对。小循环里用break来根据条件终止循环,else的作用是把所有值循环...原创 2019-03-22 16:53:00 · 6000 阅读 · 0 评论 -
python连接hive批量补充时间分区特征
1. python连接数据库from pyhive import hiveconn = hive.Connection( host= 'xxx xxx', port= xxx, auth='CUSTOM', username='your user name', password='your password...原创 2019-08-07 17:20:47 · 442 阅读 · 1 评论 -
Python正则匹配之findall( ) 用法
处理文本数据,尤其是关键词当匹配,python正则匹配真是最常用,没有之一的玩法了。而正则匹配也并没有想想中的那样难,不要被吓到。本质就是许多通配符,记不得没关系,会查表使用就OK了。 split( )函数:用于根据特定的字符、字符串分隔原字符串 举个例子,有字符串des['description'][0],值如下所示: 对该字符串进行分隔,分隔符是“车联网”。使...原创 2017-10-14 21:42:34 · 8649 阅读 · 0 评论