Python
1、python内置函数
1.1、if __name__ == '__main__':
相当于程序入口
python.py文件有两种使用方法:
①作为脚本直接执行
②import 到其他的 python 脚本中被调用(模块重用)执行
在if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。
1.2、 enumerate():
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
![]()
2、pd.to_datatime() :
有时候数据的时间格式错误或者格式不统一,所以对时间格式进行统一化处理。
不管这些日期是DataFrame的轴索引还是列,to_datetime方法可以解析多种不同的日期表示形式。将该数据有object类型转换为时间类型datatime
3、数据拼接:
3.1、pd.merge() :
设置连接,主要包括inner(内连接)、outer(外链接)、left(左连接)、right(右连接)。参数how默认值是inner内连接
pd.merge(df1,df2,on='key',how='inner')#按照相同的字段key进行合并
3.2、pd.contact():
pd.concat()函数可以沿着指定的轴将多个dataframe或者series拼接到一起;
pd.merge()函数只能实现两个表的拼接。
pd.concat(objs, axis=0, join='outer')
具体参数:
- objs: series,dataframe或者是panel构成的序列lsit
- axis: 需要合并链接的轴,0是行,1是列
- join:连接的方式 inner,或者outer
4、os.path.join():
路径拼接,连接两个或更多的路径名组件
- 如果各组件名首字母不包含’/’,则函数会自动加上
- 如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
- 如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
5、pd.sort_values():
类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序 。
用法:
DataFrame.sort_values(by='##',axis=0,ascending=True, inplace=False, na_position='last')
参数说明:
- by:指定列名(axis=0或’index’)或索引值(axis=1或’columns’);
- axis:若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0;
- ascending:是否按指定列的数组升序排列,默认为True,即升序排列;
- inplace:是否用排序后的数据集替换原来的数据,默认为False,即不替换;
- na_position={‘first’,‘last’}:设定缺失值的显示位置。
6、pd.groupby():
将原有的
DataFrame
按照groupby
的字段(这里是company
),划分为若干个分组DataFrame
,被分为多少个组就有多少个分组DataFrame
。所以说,在groupby
之后的一系列操作,均是基于子DataFrame
的操作。
7、 pd.diff()与pd.shift():
差分函数,diff函数是用来将数据进行某种移动之后与原数据进行比较得出的差异数据,相当于执行了两个过程:pd.shift()与pd-pd.shift()
具体参数:
- periods:移动的幅度,int类型,默认值为1。
- axis:移动的方向,{0 or ‘index’, 1 or ‘columns’},如果为0或者’index’,则上下移动,如果为1或者’columns’,则左右移动。
DataFrame.diff(periods=1,axis=0)
8、pd.dropna():
能够找到DataFrame类型数据的空值(缺失值),将空值所在的行/列删除后,将新的DataFrame作为返回值返回。
DataFrame.dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)
具体参数:
- axis:轴。0或'index',表示按行删除;1或'columns',表示按列删除。
- how:筛选方式。‘any’,表示该行/列只要有一个以上的空值,就删除该行/列;‘all’,表示该行/列全部都为空值,就删除该行/列。
- thresh:非空元素最低数量。int型,默认为None。如果该行/列中,非空元素数量小于这个值,就删除该行/列。
- subset:子集。列表,元素为行或者列的索引。如果axis=0或者‘index’,subset中元素为列的索引;如果axis=1或者‘column’,subset中元素为行的索引。由subset限制的子区域,是判断是否删除该行/列的条件判断区域。
- inplace:是否原地替换。布尔值,默认为False。如果为True,则在原DataFrame上进行操作,返回值为None。
9、pd_datatime.weekday() / pd.dt.weekday():
日期抽取,获取日期,判断每个时间是一周中的第几周或者星期几
pd.weekday()获取list中是周几的信息,但pd.dt.weekday()获取series中每天数据的周几信息
10、os.makedirs:
创建多层目录
os.makedirs(name,mode=0o777,exist_ok=False) os.makedirs('../user_data',exist_ok=True) #将demand_train_A保存为user_data目录下的csv文件 demand_train_A.to_csv('../user_data/demand.csv',index=False)
具体参数:
- name:你想创建的目录名
- mode:要为目录设置的权限数字模式,默认的模式为 0o777 (八进制)。
- exist_ok:是否在目录存在时触发异常。如果exist_ok为False(默认值),则在目标目录已存在的情况下触发FileExistsError异常;如果exist_ok为True,则在目标目录已存在的情况下不会触发FileExistsError异常。