日常笔记【不定时更新】

1、python if else 简写

data = [] if data is None else data

如果data为None,那么就设置为空列表,否则就是data。

2、继承父类super 

class weixinrequest(Request):
    def __init__(self,url,method,headers,need_proxy=False,fail_tiem=0,callback=None,timeout=None):
        super(weixinrequest,self).__init__(url,method,headers)
        self.callback=callback
        self.need_proxy=need_proxy
        self.fial_time=fail_tiem
        self.timeout=timeout

a、super() 函数是用于调用父类(超类)的一个方法。

super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。

详情链接

b、__init__是一个初始化的方法。def __init__():括号是传入的参数,冒号后面,是初始化的表达式。

例子self.callback=callback,就是这个类weixinrequest,属性值为()传入的参数callback的值。

c、类为什么要定义__init__()方法?

      主要是创建实例时,初始化这个实例。

d、当子类的__init__(a,b,c)属性和父类同名时,super(child,self).__init__(a,b,c)传入的参数,要与父类的属性出现的顺序一一对应

3、python 创建类时,类的全局变量和__init()属性有啥区别?

     类的全局变量,相当于定死了,而init属性可以在创建实例时,自行传入参数

4、正则表达式[]和^

      ^符号表示起始。

      [0-9]表示匹配0到9数字中的一个

      ^[^0-9]当在一组方括号里使用^是,它表示"非"或"排除"的意思。以上表达式的意思是,剔除0-9数字开头的。

      [-]等价于\-,相当于转义

      \[  匹配[,因为正则里[]是由特殊含义的,单独匹配,需要转义。同{  | 等。

5、针对pandas.Dataframe

      a、df['name'].shape()

  •             print的结果形状(行数,)列数为空
  •             需要reshape 
  •             new_x=df['name'].reshape(df['name'].shape[0],-1) 

      b、x=numpy.array([1,2])

  •           print的结果为:行数=[1,2]这个列表的长度,
  •                                   列数为空值。
  •           同样需要reshape
  •           new_x=x.reshape(1,-1)    #-1表示,作为1行状态下的所有列
  •           以上结果等价于:x=numpy.array([[1,2]])

6、pandas  读取csv格式

a、df=pandas.read_csv('filepath',header=None)

      header=None表示第一行不是列名。

b、查看列标签。

      colmuns_names=list(df.columns.values)

      df.columns.values的指是np.assary数组格式,以上语句转化成列表格式。

 7、mysql语句

a、create table  if not exists  `data_value`  ( `id` int not null primary key ,`name' varchar(32))

解释:如果不存在`data_value`则创建该table;

          如果存在,则插入数据insert into 。

b、drop `data_value` if exists `data_value`;

      create table  if not exists  `data_value`  ( `id` int not null primary key ,`name' varchar(32));

 解释:第一个语句,如果存在data value则删除,否则新建。

8、pandas中Nan,None,NaT

在读取mysql数据是,null值会被读出Nan,None,NaT

  • Nan:mysql中为数值型字段中的null,在pandas的数据框格式还是数值型,其中的null显示NaN
  • None:mysql中为日期型字段中的null,在pandas的数据框格式为object,其中的null显示None     
  • NaT:mysql中为日期型字段中的null,在pandas的数据框格式为object,pd.to_datetime(),后其中的null显示NaT

     但是,以上都能被df[df.isnull().values==True]显示处理,可见Nan,None,NaT等价,都是缺失值。

猜你喜欢

转载自blog.csdn.net/Jesszen/article/details/81073321