python读取csv的三种方式

import csv

import pandas as pd

import numpy as np

def get_csv_by_open(path, list_x, list_y):

    with open(path,'r') as csvfile:
        plots = csv.reader(csvfile)

        for row in plots:
            list_x.append(row[0])

            list_y.append(row[1])

def get_csv_by_pd_read(path):

    return pd.read_csv(path, encoding='utf-8')

def get_csv_by_np_loadtxt(path):

    return np.loadtxt(path, delimiter=',', unpack=True, dtype='str')

1.get_csv_by_open 方法直接把文件的前两列读取到两个列表中保存。它会把空项读取为 ‘’。

2.get_csv_by_pd_read 方法把文件全部数据读取到一个 DataFrame 中,注意,它会默认把文件的第一行读取为 DataFrame 的 columns(把空项读取为 nan)。举例,假如 path 文件的内容是以下两列三行数据:

    1    3

    5    9

    7    11

那么 df = get_csv_by_pd_read(path) 读取到的 DataFrame 的只有两行数据,和一行列名(‘1’和‘3’)。

df['3'] 可获取包含 9 和 11 的 Series。

3. get_csv_by_np_loadtxt 方法把文件数据读取到多个 ndarray,如果不指定dtype,默认会以 float 解析数据,如果此时文件内容不全是数值,则会报错 ValueError: could not convert string to float: XXX(XXX代表非数值项的内容)


猜你喜欢

转载自blog.csdn.net/ronaldo4511/article/details/79922893