import numpy as np
import pandas as pd
import datetime
dfraw=pd.read_csv('coding/datasets/contacts.csv',index_col='ssn')
dfraw.head()
df['ssn']=dfraw['ssn'].apply(
lambda ssn:ssn[:6] + '*'*8 + ssn[14:])
df.head()
然后会提示出错KeyError: 'ssn'
这是为什么呢?
还有我想知道路径('coding/datasets/contacts.csv',index_col='ssn')代表了什么含义? 为什么把coding换成 . 不可以。因为习题里面原路径是('./datasets/contacts.csv',index_col='ssn'),但是会报错
建议百度查看下pandas的read_csv()函数参数的意思就知道了。
前面的是路径,后面的index_col是将原来的列名设置为"ssn"
至于coding换成点不行,那就是路径不对,这个涉及到相对路径,也就是相对于你运行目前代码的py文件所在的路径,习题那么写2的话,py文件就是datasets这个文件夹同一级,而你这么写你是在coding这个文件夹同一级,你的coding下面一级才是datasets。如果你搞不懂就设置绝对路径,也就是从盘符开始写起
在读取成数据框时已经将数据列ssn作为索引列,所以在列中无ssn,用df[‘ssn']会报无健值错误。可以暂时不设定index_col,或者将dfraw转换:
dfraw=dfraw.reset_index()
关于路径用点就表示与py文件同一目录,而不是在coding里的文件,因而读取会报错。