1.查看df中的缺失值,用df.info(),df.isna().sum()
2.查看df中的某几列数据,使用df[['feature1','feature2','feature3',]],其中注意两个细节,第一,列名要用引号括起来,第二,要用两层[],也就是说查看多列数据时要输入一个列表。还可以用df.drop()把不想看的数据列隐藏起来。
3.检索空缺值时用df.isnull()或者df.isna(),本课程中df[df['Age'] == np.nan] = 0和df[df['Age']==None]=0都没能将确实行赋值为0,说明df中的NaN既不是np.nan也不是None。
4.df.dropna()将含有缺失值的行全部删除,其中可以设置how('any','all')、subset两个参数df.fillna()将所有缺失值填充为0,可以设置value、method参数。
5.df[df.duplicated()]查看重复行,df.duplicated()返回一个重复行行号构成的Series(不包括第一次出现的那行)。
6.df.drop_duplicates()删除重复行(不包括第一次出现的那行)。
7.pd.cut(df['Age'], 5,labels = [1,2,3,4,5]),分箱操作,均分为五个年龄段,并分别打上1,2,3,4,5标签,其中5也可以改为自定义区间,如输入[0,5,15,30,50,80]则代表分为(0,5] (5,15] (15,30] (30,50] (50,80]这五个区间。
8.保存为csv文件df.to_csv。
9. 将文本变量 Cabin ,Embarked用数值变量表示提供两种方法。
一,
for feat in ['Cabin', 'Ticket']:
label_dict = dict(zip(df[feat].unique(), range(df[feat].nunique())))
df[feat + "_labelEncode"] = df[feat].map(label_dict)
二,直接调用sklearn.preprocessing的LabelEncoder
from sklearn.preprocessing import LabelEncoder
for feat in ['Cabin', 'Ticket']:
lbl = LabelEncoder()
df[feat + "_labelEncode"] = lbl.fit_transform(df[feat].astype(str))
10.看类别文本变量名及种类df.unique()、df.value_counts()还可以看各种种类的数量,df.nunique()直接看唯一值的数量。
11.将类别文本转换为one-hot编码x = pd.get_dummies(df[feat], prefix=feat),prefix=feat表示将各个onehot列的列名前缀设为feat。
12.正则表达式'([A-Za-z]+)\.',其中[A-Za-z]匹配任一大小写字母,'+'表示前面的符号出现一次或多次,\.
:这部分匹配一个句点(.
)。需要使用反斜杠 \
来转义句点,因为句点在正则表达式中有特殊含义