
python学习
elibneh
这个作者很懒,什么都没留下…
展开
-
pandas数据处理函数汇总
获取unique_values:pd.unique(data['col']) 建立透视表格:data.pivot_table(index='date',columns='group_id',values='rate') 排序:data.sort_values(by = ['date', 'group_id']) 分组统计:data[['rate', 'group_id', 'date']].groupby(['group_id']).mean() 筛选样本:data[(data['date'] ..原创 2021-01-26 15:42:28 · 695 阅读 · 0 评论 -
python matplotlib 画的多张图,合并写入同一pdf
参考: 知乎题主问答(非常感谢)和mpl官方网站例子https://www.zhihu.com/question/68489126/answer/334893776和https://matplotlib.org/examples/pylab_examples/multipage_pdf.html知乎题主说比较复杂,我觉得还挺方便的,可能我的图是写好函数以后根据变量名字循环生成的,所以比较简单。本来...原创 2018-04-17 14:16:15 · 13321 阅读 · 0 评论 -
python 每周第一天和最后一天
后续详细。def getFirstLastDayListWk(dateSeries): weekNum = pd.to_datetime(dateSeries).strftime("%W") weekNum = weekNum.astype(int) weekNum0 = np.argwhere(weekNum == 0) #assuming the first d...原创 2018-04-04 18:15:41 · 5194 阅读 · 1 评论 -
python计算滚动方差(标准差)talib和pd.rolling函数差异
# -*- coding: utf-8 -*-"""Created on Thu Apr 12 11:23:46 2018@author: henbile"""#计算滚动波动率可以使用专门做技术分析的talib包里面的函数,也可以使用pandas包里面的滚动函数。#但是两个函数对于分母的选择,就是使用N还是N-1作为分母这件事情上是有分歧的。#另一个差异在于:talib包计算基于...原创 2018-04-12 11:41:03 · 14226 阅读 · 1 评论 -
python 计算股市技术分析PSY指标
PSY,心理线,百度百科链接:https://baike.baidu.com/item/PSY%E6%8C%87%E6%A0%87/3083493?fr=aladdin价格上涨可以通过两种方式判定:第一种是当日收盘价格高于前日收盘价格;第二种是当日收盘价格高于当日开盘价格。这里用的是第一种方法。import numpy as npdef getPSY(priceData, period): ...原创 2018-04-18 11:04:08 · 4024 阅读 · 0 评论 -
python画热力图(相关系数矩阵图)
使用热力图的形式展示包括相关系数矩阵图的二维矩阵的方法,目前发现有两个:首先是使用pandas包的函数,但是pandas包的目测,不能显示数字?如果想试一下,可以参考https://zhuanlan.zhihu.com/p/26100511所以研究了一下第二种方法,就是用seaborn包画。参考了https://blog.youkuaiyun.com/a19990412/article/details/793...原创 2018-05-08 16:40:00 · 110925 阅读 · 15 评论 -
python(pandas)分为点,多个分为点
分为点的函数是pandas中的quantile。如果dataframe的名字是df,那么df.quantile?就可以看到函数的解释。如果后面是一个数字,就是一个分为点;如果要多个分为点,那么要加入一个array。 # 假设df是dataframe名字df.quantile(0.5)#df各个列的中位数数据df.quantile([0,25,0.5,0.75])#...原创 2018-12-26 17:47:07 · 2016 阅读 · 1 评论 -
python 画图 2维和3维图上加点 matplotlib
有时候可能需要在做好的图上加入一些特别的点,方法如下。import matplotlib as mplimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D# 3维图上加(1,1,1)点ax = plt.subplot(111, projection='3d')ax.plot([1, ],[1,...原创 2019-01-08 17:36:42 · 4584 阅读 · 1 评论 -
python排序、得出序号各类方法大全 numpy pandas
整理了一下一行数据的排序和得出序号的各类方法,包括正序和倒序。当然还有pandas包的sort_value和sort_index两个method没有包含在这里。如果是多维的数据,需要将axis=0或者1包含进去。import numpy as npimport pandas as pd# ================================================...原创 2019-01-09 11:28:25 · 19199 阅读 · 1 评论 -
python 查询周数 week number
python里面查询某一天所处的周数week number时,有比较多的方法,自己觉得下面这个方法特别棒,在一些方面的处理非常合理。每年的最后一天必然是12月31日,是12月的最后一天,但这天不一定是这年最后一个周的最后一天,不一定是周日。如果去年最后一天是周中某一天,那么今年第一天是连续着去年最后一个周的。matlab里面的week number函数将每年的第一天的week number都设置成...原创 2018-04-04 11:18:39 · 10147 阅读 · 0 评论 -
python技巧:变量值互换;四舍五入;设置成np.nan
python一些简单,但是很强大的函数:import numpy as np#变量的值的互换,如a,b两个向量的值互换,不能用a = b, b=a完成,需要中间变量#但是python里面用tuple也很容易的实现a = 3b = 4(a,b) = (b,a)print(b)print(a)a,b = b,aprint(a)print(b)#四舍五入round(3.45...原创 2018-04-11 15:01:16 · 1322 阅读 · 0 评论 -
python matplotlib 柱状图x轴xsticks固定顺序(升序、降序)
参考了:https://www.jianshu.com/p/ea0a63a73ffa# -*- coding: utf-8 -*-"""Created on Mon Apr 16 18:12:46 2018@author: Administrator"""import numpy as npimport pandas as pdimport matplotlib as mpl...原创 2018-04-16 18:32:18 · 32848 阅读 · 2 评论 -
python有顺序的字典OrderedDict
dict字典里面的(key,value)pairs是没有顺序的。但是使用OrderedDict可以创建有顺序的字典。但是会软件变得略慢,如果有多个dict,会变得超慢。。但是没有试过用1、2、3等索引。空的dict字典建立时候有两种方式。第一种是用{},大括号。还有一种是dict()。但是我看网上说,前面一个更快?from collections import OrderedDictdict =...原创 2018-02-28 16:56:07 · 3407 阅读 · 0 评论 -
Python函数求今天日期getCurrentDate
定义一个函数,求今天日期。import time def getCurrentDate(): strDate = time.strftime('%Y-%m-%d', time.localtime(time.time())) #这里格式是‘%Y-%m-%d’,可有其他格式,也可只求年和月。 return strDatetoday = getCurrentDate()...原创 2018-02-28 17:07:48 · 4359 阅读 · 0 评论 -
python从wind导入数据
从wind导入到的数据的格式是instance。如下载一系列资产在某一段时间的收盘价格。一系列资产保存在list里面,一并下载。日期格式为“2018-02-28”。一个数字串儿表示的日期,记得也可以使用。导入数据结果中,如果数据是缺失的,python中显示为nan。如果没有其他参数,用“”表示,跟matlab导入wind不一样。from WindPy import *w.start()impo...原创 2018-03-01 18:07:06 · 23782 阅读 · 3 评论 -
python绘制双Y轴时间序列数据曲线图
花了一天摸索出来的,在python上面画双Y轴的时间序列数据的曲线图。网上大多数绘制双Y轴曲线图的不是时间序列曲线图。我这里用到两个包,pandas和matplotlib.pyplot包。画时间序列的时候,用pandas包的method,结合plt包使用,这个就需要我的数据以pd.Series或者pd.DataFrame形式保存。series 或者 dataframe 可能需要有日期作为index...原创 2018-03-09 15:56:42 · 6083 阅读 · 2 评论 -
python pandas VS numpy
两个包都有类似的数据分析工具,但是就细节上有时候也有差别。所以在切换时候需要注意。两个包的函数methods在np.nan的处理上有区别。如果是np的methods,比如我们要计算标准差,如果array里面有nan缺失值,那么返回的是nan。但是如果我们是对于dataFrame求标准差,如果有nan,返回的是去掉nan之后序列中其他数字的标准差。std函数本身也有一个差异:np.std里面有一个参...原创 2018-03-14 10:38:54 · 584 阅读 · 0 评论 -
python注释
每次用spyder打开新的python文件.py时候,最上面自动会出现如下语句:# -*- coding: utf-8 -*-"""Created on Mon Mar 05 11:47:46 2018@author: Administrator"""我一直不知道'''起的是什么作用,还是用Ctrl+1加上#。但其实不需要,因为这两个符号表示的都是注释。#是单行注释。而使用一对儿三个单引...原创 2018-03-05 11:50:49 · 306 阅读 · 0 评论 -
Python wind导入数据问题总结
python如何从wind导入一个时间序列数据并进行保存的方法在上一个博文里面。这里面主要讨论从wind导入数据时候遇到的各种问题与解决方案。本文会持续更新。正文百分比数据都是不带百分号的,导下来如需要使用其计算,需要乘以0.01。wind导入到excel的数据,数据的最后面有多余的两行文字,需要删除的。...原创 2018-03-05 14:32:43 · 4147 阅读 · 0 评论 -
python pandas学习笔记
df假设是我们要进行计算的data frame。有些是函数,比如说pd.isnull(),而有些是methods,比如说df.drop()。df.drop():删除行或者列。这样生成一个新的data frame,但可以设置参数,选择是否在原df也删除行或者列。axis=1表示,删除的是列;默认不改变原来的df,但是加上inplace = True会删除在原df中的行或者列。df.shift(i):...原创 2018-03-06 17:55:06 · 606 阅读 · 0 评论 -
python 得到时间序列的每年、每月最后一天和第一天在序列中的位置
2018.03.30大概的函数是这个样子,里面提到的问题,未来一一解决。持续更新。def getFirstLastDayMth(dateSeries): #dateSeries is like 2018-03-09 #my date series is from 2017.1.1 till now 2018.03.30 #import pandas as pd, impor...原创 2018-03-30 16:52:45 · 7809 阅读 · 0 评论 -
Python OLS模型
OLS模型#OLS ordinary least square modelimport numpy as npimport statsmodels.api as sm#.api不能省x = np.arange(-10, 10)#假设y与x之间关系如下y = 2*x + np.random.normal(size=len(x))#python包中的ols模型默认没有常数项,如果要加,需...原创 2018-04-02 16:49:37 · 17643 阅读 · 3 评论 -
python导入library:import statement
import应该是属于python的一种statement,在spyder里面是不同颜色呈现的,其他的如return,for,while这些。还有pass。import libraries的时候可以导入library里面全部的函数,也可以导入部分函数。导入时可使用缩写代替。以后就使用缩写。如果缩写代替了,全名貌似不能再使用了。如果导入了整个library,使用里面的函数时候就需要library名和...原创 2018-02-28 16:47:11 · 2473 阅读 · 0 评论