记录一下我做Udacity 的Data Scientist Nano Degree Project

做项目的时候看了别人的blog,决定自己也随手记录下在做项目中遇到的好的小知识点。

 

最近在做Udacity的Data Scientist Nano Degree Project的Customer_Segements 项目,随手记录下感觉一些挺好用的自己没注意到小细节

- 从文本中读取指定的行:

def loadDataSet(fileName, splitChar='\t'):
    """
    输入:文件名
    输出:数据集
    描述:从文件读入数据集
    """
    dataSet = []
    with open(fileName) as fr:
        for line in fr.readlines()[6:]:
            curline = line.strip().split(splitChar)#字符串方法strip():返回去除两侧(不包括)内部空格的字符串;字符串方法spilt:按照制定的字符将字符串分割成序列
            fltline = list(map(float, curline))#list函数将其他类型的序列转换成字符串;map函数将序列curline中的每个元素都转为浮点型
            dataSet.append(fltline)
    return dataSet

- python的方法统计列表中不同元素的数量

  list_len = len(set('list')) #用set的方法

- 统计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 在数据清洗时候常用的两个函数:

  对于字符串类型的筛选常用的是 pd.str.contains()这个是类似于SQL中的LIKE操作

  对于一般的布尔索引常用的是 pd.isin()

- 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()

- 对于Kmeans模型返回的score的解释

  score是kmeans聚类后每个类内的距离之和,我们可以把这个score画出来用elbow method来寻找最佳k值

转载于:https://www.cnblogs.com/silenceki/p/11309632.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值