Python学习笔记之文件读取

文章目录

  • 手写读取数据
  • Python自带库
  • 利用numpy的函数库读入
  • 利用pandas读入

文件路径 path = "./Advertising.csv"

手写读取数据

    # 手写读取数据
    f = open(path)
    x = []
    y = []
    for i, d in enumerate(f):
        if i == 0: #跳过第0行的标题
            continue
        d = d.strip() #去掉换行,回车等
        if not d: #如果d是空的,没有数据
            continue
        d = list(map(float, d.split(','))) #d有数据,用,分隔后转为float
        #在Python 3,map返回类型的迭代的对象map,而不是一个subscriptible列表,这样可以让你写map[i]。
        #要强制列表的结果,写list(map(float, d.split(',')))
        x.append(d[1:-1]) #取第一到倒数第一个之前的数
        y.append(d[-1]) #取倒数第一个数
    pprint(x)
    pprint(y)
    x = np.array(x)
    y = np.array(y)

Python自带库

# Python自带库
    f = open(path, 'r')
#    print (f)
#    输出的结果是:
#    <_io.TextIOWrapper name='./Advertising.csv' mode='r' encoding='cp936'>
    d = csv.reader(f)
    for line in d:
        print (line)
    f.close()

利用numpy的函数库读入

np.loadtxt()用于从文本加载数据。文本文件中的每一行必须含有相同的数据

 # numpy读入
     #skiprows=n 是指跳过前n行, 如果设置skiprows=2, 就会跳过前两行
    p = np.loadtxt(path,delimiter=',', skiprows=1)
    print (p)
    print ('\n\n===============\n\n')

利用pandas读入

# pandas读入
    data = pd.read_csv(path)    # TV、Radio、Newspaper、Sales
    x = data[['TV', 'Radio', 'Newspaper']]
    # x = data[['TV', 'Radio']]
    y = data['Sales']
    print('Persone Corr = \n', data.corr())
    print(x)
    print(y)
    print(x.shape, y.shape)

你可能感兴趣的:(文件操作,Python,Python)