pandas read_csv 主要参数详解
用途:
读取CSV(逗号分割)文件到DataFrame,也支持文件的部分导入和选择迭代
语法:
pandas.read_csv(filepath_or_buffer, sep=’, ‘, delimiter=None, header=‘infer’, names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression=‘infer’, thousands=None, decimal=b’.’, lineterminator=None, quotechar=’"’, quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)
主要参数及说明:
参数及实例:
示例数据下载::
链接:https://pan.baidu.com/s/1aLLxqLsEAcaKlM6pw4WDgw
提取码:mcfd
从CSV文件中加载数据:此处path是相对路径
import pandas as pd data=pd.read_csv('exampledata.csv') print(data) #输出:行数过多会被省略 year quarter realgdp ... realdpi cpi m1 0 1959 1 2710.349 ... 1886.9 28.980 139.7 1 1959 2 2778.801 ... 1919.7 29.150 141.7 2 1959 3 2775.488 ... 1916.4 29.350 140.5 3 1959 4 2785.204 ... 1931.3 29.370 140.0 4 1960 1 2847.699 ... 1955.5 29.540 139.6 5 1960 2 2834.390 ... 1966.1 29.550 140.2 6 1960 3 2839.022 ... 1967.8 29.750 140.9 7 1960 4 2802.616 ... 1966.6 29.840 141.1 8 1961 1 2819.264 ... 1984.5 29.810 142.1 9 1961 2 2872.005 ... 2014.4 29.920 142.9 .........................
参数header: int list of ints 将某行制定为列名,默认header=0
#指定第二行为列名: import pandas as pd data=pd.read_csv('exampledata.csv',header=1) print(data) #输出: 1959 1 2710.349 1707.4 ... 470.045 1886.9 28.98 139.7 0 1959 2 2778.801 1733.7 ... 481.301 1919.7 29.150 141.7 1 1959 3 2775.488 1751.8 ... 491.260 1916.4 29.350 140.5 ...............
names : array-like, default None自定义列标题,需设定header=None。
import pandas as pd data=pd.read_csv('exampledata.csv',header=None,names=list('abcdefghi')) print(data) #输出: a b c ... g h i 0 year quarter realgdp ... realdpi cpi m1 1 1959 1 2710.349 ... 1886.9 28.98 139.7 2 1959 2 2778.801 ... 1919.7 29.15 141.7 3 1959 3 2775.488 ... 1916.4 29.35 140.5 .......
index_col : int or sequence or False, default None
指定哪一列作为行索引,如果给定一个序列则是指定多层索引:
import pandas as pd data=pd.read_csv('exampledata.csv',index_col=(0,1)) print(data) #输出: realgdp realcons realinv ... realdpi cpi m1 year quarter ... 1959 1 2710.349 1707.4 286.898 ... 1886.9 28.980 139.7 2 2778.801 1733.7 310.859 ... 1919.7 29.150 141.7 3 2775.488 1751.8 289.226 ... 1916.4 29.350 140.5 4 2785.204 1753.7 299.356 ... 1931.3 29.370 140.0 1960 1 2847.699 1770.5 331.722 ... 1955.5 29.540 139.6 2 2834.390 1792.9 298.152 ... 1966.1 29.550 140.2 3 2839.022 1785.8 296.375 ... 1967.8 29.750 140.9 4 2802.616 1788.2 259.764 ... 1966.6 29.840 141.1 1961 1 2819.264 1787.7 266.405 ... 1984.5 29.810 142.1 2 2872.005 1814.3 286.246 ... 2014.4 29.920 142.9 3 2918.419 1823.1 310.227 ... 2041.9 29.980 144.1 4 2977.830 1859.6 315.463 ... 2082.0 30.040 145.2 ...............
usecols:单列数或多列数组成的列表,单列名称或多列名称组成的列表
指定加载哪些列:
#加载前三列 import pandas as pd data=pd.read_csv('exampledata.csv',usecols=(0,1,2)) print(data) #输出: year quarter realgdp 0 1959 1 2710.349 1 1959 2 2778.801 2 1959 3 2775.488 3 1959 4 2785.204 ............
prefix : str, default None 在没有列标题时,给列添加前缀
import pandas as pd data=pd.read_csv('exampledata.csv',usecols=(0,1,2),header=None,prefix='list') print(data) #输出: list0 list1 list2 0 year quarter realgdp 1 1959 1 2710.349 2 1959 2 2778.801 3 1959 3 2775.488 ............
dtype:字典{‘列名/列号’:‘指定的数据类型’}
数据类型见:https://wizardforcel.gitbooks.io/ts-numpy-tut/content/3.html
data=pd.read_csv('exampledata.csv',usecols=(0,1,2),dtype={2:np.float64}) print(np.array(data).dtype) #输出: float64
converters:{‘列名/列号’:‘函数’} 将函数应用于指定的列
skiprows :list-like or integer 指定忽略的行数
skipfooter :同上,但是从文件尾部开始数
nrows : int 需要读取的行数,从文件头部开始
na_values : scalar, str, list-like, or dict, default None ,指定某些值为空值.
默认为空值的值有,默认会将’-1.#IND’, ‘1.#QNAN’, ‘1.#IND’, ‘-1.#QNAN’, ‘#N/A N/A’,’#N/A’, ‘N/A’, ‘NA’, ‘#NA’, ‘NULL’, ‘NaN’, ‘-NaN’, ‘nan’, ‘-nan’, ''转换为NaN,如有需求,可指定某些值为空值
skip_blank_lines : boolean, default True:如果为True,则跳过空行;否则记为NaN
parse_dates:解析日期
parse_dates : boolean or list of ints or names or list of lists or dict, default False
parsedate的值可以是:
boolean. True -> 解析索引
list of ints or names. e.g. If [1, 2, 3] -> 解析1,2,3列的值作为独立的日期列;
list of lists. e.g. If [[1, 3]] -> 合并1,3列作为一个日期列使用
dict, e.g. {‘foo’ : [1, 3]} -> 将1,3列合并,并给合并后的列起名为"foo"
date_parser:指定一个自
2a159
定义函数解析日期
Pandas默认的数据读取格式是‘YYYY-MM-DD HH:MM:SS’。
参数可以是:
1.使用一个或者多个arrays(由parse_dates指定)作为参数;
2.连接指定多列字符串作为一个列作为参数;
3.每行调用一次date_parser函数来解析一个或者多个字符串(由parse_dates指定)作为参数。
#定义一个解析的日期的方法, dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d') parse_dates指定要将那些数据做日期解析,此处是将 year mont date三列合并为datetime列并解析 data=pd.read_csv('exampledata.csv',nrows=5,date_parser=dateparse,parse_dates={'datetime':['year','month','date']}) print(data) #这是一个坑
补:日期解析方法: dateutil.parser.parse
可以解析几乎所有人类可以理解的时间日期形式
from dateutil.parser import parse dt=parse('Jan 31,1997, 10:45 PM') print(dt) #输出: 2019-01-31 22:45:00
chunksize:int 将文件切成等量的块,可用于迭代,生成TextFileReader迭代器
例如:chunksize=5,则将读取到的数据分成多块,每份5行
import pandas as pd import numpy as np data=pd.read_csv('exampledata.csv',chunksize=5) for i in data: print(i) #输出: year month date realgdp ... realgovt realdpi cpi m1 0 1959 1 1 2710.349 ... 470.045 1886.9 28.98 139.7 1 1959 2 2 2778.801 ... 481.301 1919.7 29.15 141.7 2 1959 3 3 2775.488 ... 491.260 1916.4 29.35 140.5 3 1959 4 4 2785.204 ... 484.052 1931.3 29.37 140.0 4 1960 1 5 2847.699 ... 462.199 1955.5 29.54 139.6 [5 rows x 10 columns] year month date realgdp ... realgovt realdpi cpi m1 5 1960 2 6 2834.390 ... 460.400 1966.1 29.55 140.2 6 1960 3 7 2839.022 ... 474.676 1967.8 29.75 140.9 7 1960 4 8 2802.616 ... 476.434 1966.6 29.84 141.1 8 1961 1 9 2819.264 ... 475.854 1984.5 29.81 142.1 9 1961 2 10 2872.005 ... 480.328 2014.4 29.92 142.9 [5 rows x 10 columns] .........
可以用get_chunk(int/None)方法进行迭代:
get_chunk()不传参数,默认迭代一个chunk
get_chunk(int) 传入数字参数,自定义迭代n条记录
data=pd.read_csv('exampledata.csv',chunksize=5) print(data.get_chunk(6)) print(data.get_chunk()) #输出: year month date realgdp ... realgovt realdpi cpi m1 0 1959 1 1 2710.349 ... 470.045 1886.9 28.98 139.7 1 1959 2 2 2778.801 ... 481.301 1919.7 29.15 141.7 2 1959 3 3 2775.488 ... 491.260 1916.4 29.35 140.5 3 1959 4 4 2785.204 ... 484.052 1931.3 29.37 140.0 4 1960 1 5 2847.699 ... 462.199 1955.5 29.54 139.6 5 1960 2 6 2834.390 ... 460.400 1966.1 29.55 140.2 [6 rows x 10 columns] year month date realgdp ... realgovt realdpi cpi m1 6 1960 3 7 2839.022 ... 474.676 1967.8 29.75 140.9 7 1960 4 8 2802.616 ... 476.434 1966.6 29.84 141.1 8 1961 1 9 2819.264 ... 475.854 1984.5 29.81 142.1 9 1961 2 10 2872.005 ... 480.328 2014.4 29.92 142.9 10 1961 3 11 2918.419 ... 493.828 2041.9 29.98 144.1 [5 rows x 10 columns] 注意: get_chunk的方法类似迭代器的next方法,如例:第一次迭代了6条数据,第二次则从第七条开始迭代,不可循环迭代
- pandas.read_csv参数详解
- pandas read_csv()参数详解
- python pandas IO tools 之read_csv文件读写参数详解
- pandas.read_csv参数详解
- pandas.read_csv参数详解
- python pandas IO tools 之read_csv文件读写参数详解
- pandas.read_csv参数详解
- python pandas.read_csv参数详解
- pandas.read_csv 的参数详解
- pandas.read_csv参数详解
- pandas.read_csv参数详解
- python pandas.read_csv参数详解
- pandas.read_csv参数详解
- pandas21 读csv文件read_csv(2.read_csv参数介绍)(详细 tcy)
- pandas.read_csv参数整理
- pandas.read_csv参数整理
- pandas.read_csv参数整理
- 【python学习笔记】pandas.read_csv参数整理
- pandas 之read_csv()参数
- pandas.read_csv参数整理