1、字典添加元素方式
a = {}
a['the']=5
##{'the': 5}
2、生成指定范围的随机小数
#生成200到300之间的随机小数
import random
random.uniform(200,300)
random.random() #生成0到1之间的随机小数
random.randint(a,b) #生成包含两端的[a,b]随机整数
3、创建目录及删除
import os
#创建一级目录,在E盘在创建learn目录
os.mkdir('E:\learn')
# 创建多级目录,在E盘在创建learn目录,learn目录下创建math目录
os.makedirs('E:\learn\math')
#删除文件夹以及里面的内容
import shutil
shutil.rmtree(dir_name)
#os.sep 根据你所处的平台,自动采用相应的分隔符号,windows是'\'
import os
name='E:\\pycharm\\tu'
name.split(os.sep)[-1]
#输出为tu
4、cmd切到固定位置 (cd /d E:\Spyder\Job)
5、代码打包为单独的exe pyinstaller -F 文件名.py
6、np.bincount()将数组中出现每一项的频次记录下来
a = [0,1,1,0,0,1,2,1,2,0,2,1]
np.bincount(a)
#array([4, 5, 3], dtype=int64)
7、
numpy.clip(a, a_min, a_max, out=None) #a中的值被限定在最大值和最小值之间
a : 输入的数组
a_min: 限定的最小值 也可以是数组 如果为数组时 shape必须和a一样
a_max:限定的最大值 也可以是数组 shape和a一样
out:剪裁后的数组存入的数组
8、series数据类型数元素个数
y.value_counts()
#numpy统计元素个数
import collections
collections.Counter(y)
9、随机抽样
df.sample(frac=0.8, replace=True, random_state=1)
frac抽样比例
replace是否为有放回抽样,
True:有放回抽样
False:未放回抽样
10、dataframe根据某一列升序降序
#data根据label列降序
data.sort_values(by="label" , inplace=True,ascending=False)
#inplace表示是否是原数据更改
#ascending = True 表示升序
11、dataframe查看NAN的个数并替换为0
total_nan_values = data.isnull().sum().sum()
print('total_nan_values is: ', total_nan_values)
data = data.fillna(0)
12、判断dataframe每列数据是否有空值
data.isnull().any(axis=0)
13、查看数据的最后几列
DataFrame.tail(n=5) ##返回最后5行
#对于n的负值,此函数返回除前n行之外的所有行,等效于df[n:],即等效于df.iloc[n:]
14、选取两列或以上满足条件的行
df[(df['column1']=='beijing')&(df['column2']==3)]
15、表中某列数据的取值的个数
df['columns'].value_counts()
#中位数
df['columns'].median()
#nunique可以直接统计不同值的个数
df['columns'].nunique()
#去重之后的不同值
df['columns'].unique()
#众数
df['columns'].mode()
#分位数
df['columns'].quantile(0.25) #4分之一分位数
#统计一列中每行的字符串的长度
df['columns'].str.len()
16、删除含有空值的行
dropna()用法:
DataFrme.dropna(axis=0,how=’any’,thresh=None,subset=None,inplace=False)
参数:
axis: 默认axis=0。0为按行删除,1为按列删除
how: 默认 ‘any’。 ‘any’指带缺失值的所有行/列; 'all’指清除一整行/列都是缺失值的行/列
thresh: int,保留含有int个非nan值的行
subset: 删除特定列中包含缺失值的行或列
inplace: 默认False,即筛选后的数据存为副本,True表示直接在原数据上更改
17、时间格式转化
pd.to_datetime()函数
18、agg聚合函数
agg()函数是聚合函数,
DataFrame.agg(func,axis = 0,* args,** kwargs )
@@@func : 实现某种统计功能的函数,如果要不同列用求不同统计量,
则用字典{'行名/列名','函数名'}指定。
19、数据透视表
df.pivot_table(values=None, index=[列名],columns=[列名],
aggfunc='mean', fill_value=None, dropna=True, margins=False,margins_name='All')
#df: 要进行统计的数据集,类似与excel数据透视表里的选择数据区域,在该区域里进行计算
#values: 要进行汇总结算的列名,类似于数据透视表中的‘数值’
#index: 数据透视表的行标签,类似于excel透视表中的‘行标签’
#columns:数据透视表的列标签,类似于excel透视表中的‘列标签’
#aggfunc="mean": 汇总结算的计算方式,类似于在excel数据中选定列了以后选择是求和还是取平均
#margins: 是否对计算结果再进行求和计算,默认为Flase,若为True则会添加分项的的小计,即每一行和列的和
#margins_name='All':求和结果的命名,默认为‘ALL'
20、分组函数groupby函数
df.groupby(['columns1'])['columns2'].count()
#columns1根据哪一列分组
#columns2对哪一列进行统计,求和,计数,求均值等等
21、merge函数,根据公共字段将不同的表拼接在一起
pd.merge(表1,表2,on=['某字段'],how='left')
22、timedelta() 函数
#timedelta()函数可以直接参与日期的计算
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
#days表示天数,minutes表示分钟,hours表示小时,seconds表示秒数
23、集合
aset={'python',1,2,3,'love'}
otherset={'dog','cat',3,5,1,'love'}
aset.union(otherset) #两集合的并集
aset.intersection(otherset) #两集合的交集
aset.difference(otherset) #aset特有的元素
aset.issubset(otherset) #aset是否为otherset的子集
aset.remove('python') #从aset中移除python
aset.pop() #随机移除aset中的一个元素