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等价,都是缺失值。