记录一下我做Udacity 的Data Scientist Nano Degree Project
做项目的时候看了别人的blog,决定自己也随手记录下在做项目中遇到的好的小知识点。
最近在做Udacity的Data Scientist Nano Degree Project的Customer_Segements 项目,随手记录下感觉一些挺好用的自己没注意到小细节
– 统计DataFrame中每行的缺失值:
missing_value_in_row = df.shape[1] – df.counts(axis = 1)
missing_value_in_col = df.shape[o] – df.counts(axis = 0)
– 通过布尔索引获取DataFrame的相应索引并转化为list(便于用来遍历):
names = list(df[df[‘counts’] <= 73500].index)
– 几种遍历DataFrame的方法:
iterrows:
for name, row in df.iterrows(): print("Row{} of df is{}".format(name, row))
iteritems:
for name, col in df.iteritems(): print("col{} of df is {}".format(name, col))
itertuple:
同时回顾一下类似的enumerate()可用来遍历list:
my_list = ['apple', 'banana', 'grapes', 'pear'] for c, value in enumerate(my_list, 1): print(c, value) # Output: # 1 apple # 2 banana # 3 grapes # 4 pear
– pandas中的数据类型转化:
Series -> array
df[name].values
Series -> list
df[name].to_list()
Series-> str
df[name].astpye(str)
– pandas 在数据编码或者转换的时候,建立创建字典,便于使用map来进行映射转换。
– 注意复习正则表达式,清洗数据很有用!
-关于Feature Transformation:
OneHotEncoder() 接受的输入是 2-D array 维度不符合的可以通过 .reshape(-1, 1)转换
LaBelBinarizer() 接受的输入是1-D array
同时值得注意的是df.column返回的是1-D,而df[‘column’]返回的事2-D (以前一直没注意)
– pandas中处理缺失值的神器:
imputer() 只能接受2-D输入,返回的是array(这是sklearn的)
pd.fillna()