python的一些小点

用python快三个月了。一直没有做总结,没有总结就没有进步,趁着放假来总结一下。

1.碰到会重复利用的dataframe某列数据的筛选替换,不要写:

indu_concat.loc[indu_concat['chineseName']=='石油开采Ⅲ',1]='CI005001.WI'(用于行业代码和行业名称间的转换)

而是应存一个dict文件,每次使用直接用这个文件map替换即可。

2.用rolling.apply(自定义函数)时候,自定义函数输入的格式为array或df都可以,但自定义函数包括所有的情况:

def index_exponential_induction(array):
    n=7
    expo_induc=np.e**(-1/n)
    result=0
    for x in range(n):
        if pd.isnull(array[x]):
            result=None
            break
        else:
            result=result+array[x]*(expo_induc**(n-x-1))
    return result

一直报错,改好了之后的指数衰减函数,之前一直报错的原因就是因为有的数据是空值,函数里没有写空值怎么处理,就报错。

3.从数据库取数据到python的话,前置操作最好在sql里做好,不然一些冗余的行或列会拖慢pandas的效率

4.如果有一堆代码运行的很慢的话,可以计算其中每一行运行时间要多久,把运行时间久的那几行拿出来思考能不能进行改进

5.做一切事情,都该从数据出发,数据决定了每一步该怎么走。最后做出来的结果应该选一个小例子验证程序的结果是否正确

6.取数据的过程放在一个py文件里,数据处理和算因子的过程放到另一个py文件里,且最好拆分成很多个能重用的小函数,差不多范畴的函数放到一个类里,方便重用。

 

 

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...