1 min read

Python 学习的流水笔记

Python 中 ‘unicodeescape’ codec can’t decode bytes in position XXX: trun错误解决方案 - CSDN博客

解决方案是路径前面加r,如 r'xxx'

在R中还没有找到方案,只能用替换了,把那些\替换成/

Help 功能

jupyter支持tab键代码自动补全,但是是杨修。 如果想查询某些函数的具体帮助信息,可以使用?关键字。

import numpy as np
np.rank?

决策树环节importances排序问题

ddd = pd.concat([pd.DataFrame(X_train.columns), pd.DataFrame(importances)], axis = 1)
ddd.columns = ["name", "imp"]
ddd.sort_values(by=["imp"],ascending = False)["imp"].sum()

验证了,

pd.DataFrame(X_train.columns)pd.DataFrame(importances)的index相同,因此直接concat 注意,列并,所以axis=1 然后改变变量名称,用.columns = []。 用sort_values排序。 .sum()验证了,这个权重和为1。 因此这个从高到低排序,看哪部分变量衰减最多,去那个点之前的地方进行阈值选取。


np.argsort()的解释

例如\(x=[1,4,3,-1,6,9]\), 对应的\(index_x = [0,1,2,3,4,5]\)。 因此x[3] = -1是最小值。 如果设y=np.argsort(x)后, \(x\)便sort后为\([-1,1,3,4,6,9]\), 因此y[0]代表最小值-1\(x\)中的\(index_x=3\)。 解释完毕。

python导入自己包的技巧

在Python中,一个.py文件就称之为一个模块(Module)。

请注意,每一个包目录下面都会有一个__init__.py的文件, 这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。 __init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是mycompany。

文件www.py的模块名就是mycompany.web.www,两个文件utils.py的模块名分别是mycompany.utilsmycompany.web.utils

import sys
sys.path

返回结果:

['',
 'C:\\ProgramData\\Anaconda3\\python36.zip',
 'C:\\ProgramData\\Anaconda3\\DLLs',
 'C:\\ProgramData\\Anaconda3\\lib',
 'C:\\ProgramData\\Anaconda3',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Babel-2.5.0-py3.6.egg',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
 'C:\\Users\\lijiaxiang\\.ipython']
  • import sys
  • sys.path.append(’引用模块的地址')

例如:

  • import sys
  • sys.path.append('C:/Users/lijiaxiang/Desktop/model')1
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-13-b841c103bdb2> in <module>()
      1 import sys
      2 sys.path.append('C:/Users/lijiaxiang/Desktop/model')
----> 3 from model import baichuan

ModuleNotFoundError: No module named 'model'

因为model下没有__init__.py,自己新建一个就好了。

.format在String中套用函数功能

'''
...
where userid = {}
'''.format(userid)

要学会print

最后要print main(68758684)main(68758684)没有用。 main是一个主函数,只要给userid,就反馈分数。 另外,.format()是函数里面录入sql的方法。

pd.merge如果key不同

left_on, right_on

import pdb;pdb.set_trace()debug神器

每一步都好好看下。

 import pdb;pdb.set_trace()
    if 'cmcnt_pai_exc_l7d' not in df.columns.tolist():
        df['cmcnt_pai_exc_l7d'] = None

python版本管理

conda info --envs,查看存在的python版本,多余的就删除。


  1. 使用Linux的路径: ‘d:/a.txt’, 这在Linux和window下都是行的通的。* Python 中 ‘unicodeescape’ codec can’t decode bytes in position XXX: trun错误解决方案 - CSDN博客