1.删除变量:
df.drop(['‘变量名1,变量名2......’],axis=1,inplace=True)
2.删除所有缺失值:
df.dropna(how='any',inplace=True) #‘any’有一个维度缺失就都删除
3.删除指定变量的缺失值:
df.dropna(subset=['变量名1','变量名2],inplace=True)
3.1根据阈值删除缺失值:
thresh_count=len(data)*0.4# 设定阀值data=data.dropna(thresh=thresh_count,axis=1)#若某一列数据缺失的数量超过阀值就会被删除
4.删除指定变量的重复值:
df.drop_duplicates(subset=['变量名'],inplace=True)
5.缺失值填充:
df.fillna(''值) #统一填充
df.fillna(value={'类别变量:df['类别变量'].mode()[0],'连续变量':指定值,'连续变量2':df['连续变量2'].mean()/median,inplace=True)
df.fillna({'': , '': ,})
5.1数值型变量缺失值处理:
from sklearn.preprocessing import Imputer imr=Imputer(missing_values='NaN',strategy='mean',axis=0)# 针对axis=0 列来处理imr=imr.fit(loans[numColumns]) loans[numColumns]=imr.transform(loans[numColumns])
6.value.counts():查看某列中有多少不同值并计算每个不同值有多少重复值
7.按条件对变量中指定值重新赋值:
df['变量'][df['变量'] == '旧值'] = '新值'
df['变量名']=df['变量名'].replace(['就值1','就值2'],[新值1,新值2])
df.replace({:,:})
train.loc[train['delinq_2yrs']>0,'delinq_2yrs'] = '1+'
8.按条件筛选数据:
df=df[df['变量名']>/!=/=数值]
df[~(df.a ==1)]
df.query(‘变量名>90’)
9.类别型变量描述统计:
df.describe(include='object')
#df.describe(include='all')
10.数值处理:
df['变量']=round(df['变量'],2) # 保留两位小数
df['变量']=round(df['变量']) # 保留整数位
11.格式转换:
df['变量']=df['变量'].astype('object')
df['变量']=df['变量'].astype('float64')
df.Fare=[int(x) for x in df.Fare]
12.查看因变量比例饼图:df.groupby('Y').size()
plt.axes(aspect='equal')
counts=df['Y'].value_counts()
plt.pie(x=counts,labels=pd.Series(counts.index),autopct='%.2f%%')
plt.show()
13.类别型变量柱状图绘制:
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.bar(np.arange(len(df['类别变量'].value_counts())),df['类别变量'].value_counts())
#plt.title()
#plt.xlabel()
#plt.ylabel()
plt.xticks(np.arange(len(df['类别变量'].value_counts())),df['类别变量'].value_counts().index)
for x,y in zip(np.arange(len(df['类别变量'].value_counts())),df['类别变量'].value_counts()):
plt.text(x,y,y,ha='center',va='bottom')
14.变量关系图:
sns.heatmap(df.corr(),vmin=-1,vmax=1,cmap='Blue,annot=True)
15.箱线图:
df.boxplot()
16.数据保存本地:
df.to_csv('命名.csv',encoding="utf_8_sig")
17.设置列表:
vlist=pd.DataFrame([x1,x2,x3],index=['x1','x2','x3' ,columns=['IV'])
18.重置索引:
df=df.reset_index(drop=True,inplace=False)
19.读取了文件后,Pandas会把文件的一行作为列的索引标签,使用行数字作为行的索引标签:
数据.index.name = 'date'
数据.columns.name = 'code'
20.转换列名:
df.rename(columns=states,inplace=True) #states 为需要改变的列名的字典
21.随机生成数据:
np.random.randn()
22.寻找每行最大值、索引,并添加到数据:
arr['max_value']=arr.max(axis=1)
arr['max_index']=np.argmax(array,axis=1)
23.数字格式化:
Python format 格式化函数 | 菜鸟教程
24.哑变量处理:
pd.get_dummies()
n_columns=["a" , "b"] dummy_df=pd.get_dummies(loans[n_columns])# 用get_dummies进行one hot编码loans=pd.concat([loans , dummy_df],axis=1)
25.去除字符串:
df['变量'].str.strip("需要去除的字符串").astype(float) #通常用于处理字符串转数字
26.时间处理格式:
df.变量=pd.to_datetime(df.变量,format='%Y/%m/%d') # 原日期格式为:2018/09/10
df['max']=pd.datetime.today().year-df.earliest_cr_line.dt.year # 计算日期到今天的时间
27.相关系数:
stats.pearsonr(df.x1, df.y)
28.数据透视表:
pandas.pivot_table 函数中包含四个主要的变量,以及一些可选择使用的参数。四个主要的变量分别是数据源 data,行索引 index,列 columns,和数值 values。可选择使用的参数包括数值的汇总方式,NaN值的处理方式,以及是否显示汇总行数据等。
df.pivot_table(values='因变量',index='需分组的变量',aggfunc=np.mean)
df[['因变量','需分组变量']].groupby(['需分组变量'],as_index=False).mean() #分组聚合
29.根据类型筛选变量:
df.select_dtypes(include=["object"]).columns
30.数据标准化:
scaler = StandardScaler()
X = scaler.fit_transform(X)
sc = StandardScaler() # 初始化缩放器loans_ml_df[col]=sc.fit_transform(loans_ml_df[col]) #对数据进行标准化
31.排序:
serier: sort_index(axis=1,ascending=False)、.order()
dataframe:sort_index(by='')
sort_values(ascending=False)
32.拼接:
pd.merge(left,right,on['',''],how='outer)/pd.merge(df1,df2,how='inner')
33.替换缺失值:
df.replace(-1,np.nan)
34.找出具体缺失值:
df[df.isnull().values==True]
35.有序特征的映射:
mapping_dict={"emp_length":{"10+ years":10,"9 years":9,"8 years":8,"7 years":7,"6 years":6,"5years":5,"4years":4,"3 years":3,"2 years":2,"1 year":1,"< 1 year":0,"n/a":0}
loans=loans.replace(mapping_dict)#变量映射
36.标准化:
col=loans.select_dtypes(include=['int64','float64']).columns
len(col)out:78#78个特征
col=col.drop('loan_status')#剔除目标变量
loans_ml_df=loans# 复制数据至变量
fromsklearn.preprocessingimportStandardScaler# 导入模块
sc=StandardScaler()# 初始化缩放器
loans_ml_df[col]=sc.fit_transform(loans_ml_df[col])#对数据进行标准化
37groupby聚合:
groupby().agg([])
38.图像位置:
import matplotlib.gridspec as gridspec
39.enumerate() 函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
40.特征转换:
from sklearn.feature_extraction import DivtVectorizer
41.迭代:
zip()并行
chain()串行
42.最大值、最小值具体信息
df[df[''] == min/max()]
43.分类变量的每个值数量 至少不少于总数据的5%
44.按照区分层,每个区抽取400个样本
get_sample(df,sampling='stratified',k=400,stratified=[''])
45.更换数据:
def judgeLevel(df)
if df['inq_last_6mths'] ==0:
return 'C'
else:
return 'B'
df['inq_last_6mths'] = df.apply(lambda r: judgeLevel(r), axis=1)
df ['] = df[''].map(lambda x : 1 if x >1 else x)
46.异常值
可以分析中位数和众数的关系,如果两者的值差别很大,则说明众数偏离群体较远,那么这个众数有可能是错误值。
abs(x[].mode().iloc[0,]-x[].median())/(x[].quantile(0.75)-x[].quantile(0.25)))
47.创建列
df.assign(new1,new2)
48.缺失值呀变量处理
df.a.isnull().apply(int)