python pandas read_csv_python:pandas——read_csv方法

read_csv 方法

返回数据类型:

DataFrame:二维标记数据结构

列可以是不同的数据类型,是最常用的pandas对象,如同Series对象一样接受多种输入:lists/dicts/Series/DataFrame。

Series:一维标记数组

可以存储任意数据类型:int/string/float/Python对象,创建Series方法例子:

s = Series(data, index = index)

# data可以是Python字典/ndarray/标量值

调用方式:

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*, *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='.'*, *lineterminator=None*,*quotechar='"'*, *quoting=0*, *escapechar=None*, *comment=None*, *encoding=None*, *dialect=None*, *tupleize_cols=False*,*error_bad_lines=True*, *warn_bad_lines=True*, *skipfooter=0*, *skip_footer=0*, *doublequote=True*,*delim_whitespace=False*, *as_recarray=False*, *compact_ints=False*, *use_unsigned=False*, *low_memory=True*,*buffer_lines=None*, *memory_map=False*, *float_precision=None*)

参数:

filepath_or_buffer :

字符串,或者任何对象的read()方法。这个字符串可以是URL,有效的URL方案包括http、ftp、s3和文件。可以直接写入"文件名.csv"

header :

将行号用作列名,且是数据的开头。

注意当skip_blank_lines=True时,这个参数忽略注释行和空行。所以header=0表示第一行是数据而不是文件的第一行。

例子:

import pandas as pd

obj=pd.read_csv('ceshi.csv')

print obj

print type(obj)

print obj.dtypes

Unnamed: 0 c1 c2 c3

0 a 0 5 10

1 b 1 6 11

2 c 2 7 12

3 d 3 8 13

4 e 4 9 14

Unnamed: 0 object

c1 int64

c2 int64

c3 int64

dtype: object

上述代码中ceshi.csv中的数据为:

因为csv中的数据都是用逗号隔开的。

,c1,c2,c3

a,0,5,10

b,1,6,11

c,2,7,12

d,3,8,13

e,4,9,14

代码将有列索引但没有行索引的数据,read_csv会自动添加上行索引(即使原数据有行索引)。

read_csv读取的数据类型为Dataframe

obj.dtypes可以查看每列的数据类型

obj_2=pd.read_csv('f:/ceshi.csv',header=None,names=range(2,5))

print obj_2

2 3 4

0 c1 c2 c3

1 0 5 10

2 1 6 11

3 2 7 12

4 3 8 13

5 4 9 14

header=None

即指明原始文件数据没有列索引,这样read_csv为自动加上列索引,除非你给定列索引的名字。

obj_2=pd.read_csv('f:/ceshi.csv',header=0,names=range(2,5))

print obj_2

2 3 4

0 0 5 10

1 1 6 11

2 2 7 12

3 3 8 13

4 4 9 14

header=0

表示文件第0行(即第一行,索引从0开始)为列索引,这样加names会替换原来的列索引。

parse_dates :

布尔类型值 or int类型值的列表 or 列表的列表 or 字典(默认值为 FALSE)

TRUE:则尝试解析索引

由int类型值组成的列表(例子 [1,2,3]):作为单独数据列,分别解析原始文件中的1,2,3列

由列表组成的列表(例子[[1,3]]):将1,3列合并,作为一个单列进行解析

字典(例子{‘foo’:[1, 3]}):解析1,3列作为数据,并命名为foo

index_col:

int类型值,序列,FALSE(默认 None)

将真实的某列当做index(列的数目,甚至列名)

例子:

obj_2=pd.read_csv('ceshi.csv',index_col=0)

print obj_2

c1 c2 c3

a 0 5 10

b 1 6 11

c 2 7 12

d 3 8 13

e 4 9 14

obj_2=pd.read_csv('ceshi.csv',index_col=[0,2])

print obj_2

c1 c3

c2

a 5 0 10

b 6 1 11

c 7 2 12

d 8 3 13

e 9 4 14

index_col为指定数据中那一列作为Dataframe的行索引,也可以可指定多列,形成层次索引,默认为None,即不指定行索引,这样系统会自动加上行索引。

squeeze:

布尔值,默认FALSE

TRUE 如果被解析的数据只有一列,那么返回Series类型。

data_parser:

函数,默认None

指定将输入的字符串转换为可变的时间数据。Pandas默认数据读取格式:‘YYYY-MM-DD HH:MM:SS’,若读取的数据不是默认格式,则要人工定义。定义例子:

def parser(x):

return datetime.strptime('190'+x, '%Y-%m')

#后面的就是输入的文件的格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值