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文件里,且最好拆分成很多个能重用的小函数,差不多范畴的函数放到一个类里,方便重用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值