Pythonpandas读取csvtxt数据文件python读取csvtxt文件
导读
主要利用pandas.read_csv接口 对csv格式文件或txt文件进行读取,由于CSV格式文件使用非常频繁,功能强大,参数众多,因此在这里专门做详细介绍
使用示例
# 基础用法 import pandas as pd pd.read_csv(path) ts_code symbol name area industry list_date 0 000001.SZ 1 平安银行 深圳 银行 19910403 1 000002.SZ 2 万科A 深圳 全国地产 19910129 2 000004.SZ 4 ST国华 深圳 软件服务 19910114 3 000005.SZ 5 ST星源 深圳 环境保护 19901210 4 000006.SZ 6 深振业A 深圳 区域地产 19920427 # 如何指定字符集类型 encoding=None pd.read_csv(path, encoding="utf8") # 如何指定表头/列名行 header=0 pd.read_csv(path) # 作者是archie ts_code symbol name area industry list_date 000001.SZ 000001 平安银行 深圳 银行 19910403 000002.SZ 000002 万科A 深圳 全国地产 19910129 000004.SZ 000004 ST国华 深圳 软件服务 19910114 000005.SZ 000005 ST星源 深圳 环境保护 19901210 pd.read_csv(path, header=1) ts_code symbol name area industry list_date 0 000001.SZ 1 平安银行 深圳 银行 19910403 1 000002.SZ 2 万科A 深圳 全国地产 19910129 2 000004.SZ 4 ST国华 深圳 软件服务 19910114 3 000005.SZ 5 ST星源 深圳 环境保护 19901210 # 如何指定分隔符 sep="," pd.read_csv(path) ts_code/symbol/name/area/industry/list_date 0 000001.SZ/000001/平安银行/深圳/银行/19910403 1 000002.SZ/000002/万科A/深圳/全国地产/19910129 2 000004.SZ/000004/ST国华/深圳/软件服务/19910114 3 000005.SZ/000005/ST星源/深圳/环境保护/19901210 pd.read_csv(path, sep="/") ts_code symbol name area industry list_date 0 000001.SZ 1 平安银行 深圳 银行 19910403 1 000002.SZ 2 万科A 深圳 全国地产 19910129 2 000004.SZ 4 ST国华 深圳 软件服务 19910114 3 000005.SZ 5 ST星源 深圳 环境保护 19901210 # 如何自定义列名 names=None pd.read_csv(path) 000001.SZ 000001 平安银行 深圳 银行 19910403 0 000002.SZ 2 万科A 深圳 全国地产 19910129 1 000004.SZ 4 ST国华 深圳 软件服务 19910114 2 000005.SZ 5 ST星源 深圳 环境保护 19901210 pd.read_csv(path, names=["ts_code","symbol","name","area","industry","list_date"]) ts_code symbol name area industry list_date 0 000001.SZ 1 平安银行 深圳 银行 19910403 1 000002.SZ 2 万科A 深圳 全国地产 19910129 2 000004.SZ 4 ST国华 深圳 软件服务 19910114 3 000005.SZ 5 ST星源 深圳 环境保护 19901210 # 如何指定行索引 index_col=None pd.read_csv(path) ts_code symbol name area industry list_date 0 000001.SZ 1 平安银行 深圳 银行 19910403 1 000002.SZ 2 万科A 深圳 全国地产 19910129 2 000004.SZ 4 ST国华 深圳 软件服务 19910114 3 000005.SZ 5 ST星源 深圳 环境保护 19901210 pd.read_csv(path, index_col="ts_code") symbol name area industry list_date ts_code 000001.SZ 1 平安银行 深圳 银行 19910403 000002.SZ 2 万科A 深圳 全国地产 19910129 000004.SZ 4 ST国华 深圳 软件服务 19910114 000005.SZ 5 ST星源 深圳 环境保护 19901210 # 如何读入指定列数据 usecols=None pd.read_csv(path, usecols=["ts_code"]) ts_code 0 000001.SZ 1 000002.SZ 2 000004.SZ 3 000005.SZ pd.read_csv(path, usecols=["ts_code", "area"]) ts_code area 0 000001.SZ 深圳 1 000002.SZ 深圳 2 000004.SZ 深圳 3 000005.SZ 深圳 # 如何读入前N行数据 nrows=None pd.read_csv(path) ts_code symbol name area industry list_date 0 000001.SZ 1 平安银行 深圳 银行 19910403 1 000002.SZ 2 万科A 深圳 全国地产 19910129 2 000004.SZ 4 ST国华 深圳 软件服务 19910114 3 000005.SZ 5 ST星源 深圳 环境保护 19901210 pd.read_csv(path, nrows=2) ts_code symbol name area industry list_date 0 000001.SZ 1 平安银行 深圳 银行 19910403 1 000002.SZ 2 万科A 深圳 全国地产 19910129 # 如何跳过前N行数据 skiprows=None pd.read_csv(path, skiprows=2) 000002.SZ 000002 万科A 深圳 全国地产 19910129 0 000004.SZ 4 ST国华 深圳 软件服务 19910114 1 000005.SZ 5 ST星源 深圳 环境保护 19901210 # 如何指定数据类型 dtype=None pd.read_csv(path, dtype={"list_date": "str"}).info() RangeIndex: 4 entries, 0 to 3 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ts_code 4 non-null object 1 symbol 4 non-null int64 2 name 4 non-null object 3 area 4 non-null object 4 industry 4 non-null object 5 list_date 4 non-null object dtypes: int64(1), object(5) memory usage: 320.0+ bytes # 如何读入时进行数据运算 converters=None pd.read_csv(path, converters={"ts_code": lambda code: code[:6]}) ts_code symbol name area industry list_date 0 000001 1 平安银行 深圳 银行 19910403 1 000002 2 万科A 深圳 全国地产 19910129 2 000004 4 ST国华 深圳 软件服务 19910114 3 000005 5 ST星源 深圳 环境保护 19901210 # 如何读入时对日期时间列进行转换 parse_dates=False pd.read_csv(path, parse_dates=["list_date"]) ts_code symbol name area industry list_date 0 000001.SZ 1 平安银行 深圳 银行 1991-04-03 1 000002.SZ 2 万科A 深圳 全国地产 1991-01-29 2 000004.SZ 4 ST国华 深圳 软件服务 1991-01-14 3 000005.SZ 5 ST星源 深圳 环境保护 1990-12-10 pd.read_csv(path, parse_dates=["list_date"]).info() RangeIndex: 4 entries, 0 to 3 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ts_code 4 non-null object 1 symbol 4 non-null int64 2 name 4 non-null object 3 area 4 non-null object 4 industry 4 non-null object 5 list_date 4 non-null datetime64[ns] dtypes: datetime64[ns](1), int64(1), object(4) memory usage: 320.0+ bytes
参数解析
# 以下为默认参数 pd.read_csv( filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], #文件路径 sep=",", #分割符 delimiter=None, #备选分隔符,如果指定该参数,则sep参数失效 header="infer", #指定第几行是表头,也就是指定列名行。由于默认参数skip_blank_lines=True,header参数将忽略空行和注释行, 因此header=0表示第一行数据而非文件的第一行 names=None, #指定列名,传入列表 index_col=None, #指定索引列,可以理解为行名 usecols=None, #使用数据的部分列,传需要读入的列名或序号[列名1,列名2],或excel中自带列名ABCD...如"A,B"或"A:D" squeeze=False, #读入数据只一列时转Series对象,默认不转 prefix=None, #指定一个前缀,列名改为 前缀+序号 mangle_dupe_cols=True, #当列名有重复时,解析列名将变为X, X.1...,为False时后面重复列名的列会覆盖前列 dtype=None, #指定各数据列的数据类型,精准指定可传字典或列表 engine=None, #可以选择C或Python,一般不用 converters=None, ##对某一列使用Lambda函数,进行某种运算 true_values=None, #同false_values一起使用,若在列表中则数据变true false_values=None, #同true_values一起使用,若在列表中数据变false skipinitialspace=False, skiprows=None, #跳过前几行,可传列表跳过多行(列名行为第0行),也可以传入Lambda函数如读取偶数行:skiprows=lambda x:x%2==0 skipfooter=0, #对应skiprows,跳过后几行 nrows=None, #读入前几行 na_values=None, #将指定的值更改为NaN,可传列表进行多个替换 keep_default_na=True, #默认True,读入空值为NaN,False直接无数据 na_filter=True, #空值标记,默认标记空值,False时不标记空值且参数keep_default_na和na_values都会失效 skip_blank_lines=True, #不读入空行 parse_dates=False, #传入需要进行解析日期列,如日期分三列存放可如下进行解析:parse_dates={"list_date": ["年", "月", "日"]} date_parser=None, #配合parse_dates,对parse_dates参数传入列进行数据转化利用Lambda函数 keep_date_col=False, #parse_dates参数可以将多列合并并解析成一个时间列,此时使用该参数可以保留原有时间列 dayfirst=False, #如果parse_dates参数可以,会对转换后的日期转换为该月的第一天 iterator=False, #是否返回TextFileReader对象,可迭代 chunksize=None, #指定块大小,处理大型csv文件时使用,按块读入,返回可迭代TextFileReader对象 compression="infer", #指定压缩格式,用于对磁盘数据进行即时解压缩。如果为"infer",且传入文件路径是以.gz、.bz2、.zip或.xz结尾的字符串,则使用gzip、bz2、zip或xz,否则不进行解压缩。如果使用zip,则ZIP文件必须仅包含一个要读取的数据文件。设置为None将不进行解压缩 lineterminator=None, #指定换行符,仅对C解析器有效 quotechar=""", #表示引用数据的开始和结束的字符 escapechar=None, #传入一个转义符,用于过滤数据中的该转入符 comment=None, #注释标识符,忽略每一行传入字符串之后的数据 encoding=None, #指定字符集类型,通常指定为"utf-8")
如何让cpu跑出最大睿频?如何看cpu体质?处理器的体质和他能不能达到标称的睿频没关系,11500本身不能超频无需关注体质,只能说如果体质好的i511500能手动给他设置更低的电压来稳定运行以达到更低的发热和功耗。至于楼主说
国家反诈app到底有多厉害?国家反诈app一夜爆红,下载量一直在前几名。我也下载安装了,功能确实很强大,确实能起到反诈作用,特别是对于老人来说,最大限度避免被诈骗!不知道你说的是宣传角度还是说功能角度。若从宣
11400和5600g后期装显卡怎么选5600g不支持pc4?Inteli511400采用Intel的14nm工艺,CypressCove架构,6核心12线程,基础频率2。6GHz,加速频率4。4GHz,L3缓存12MB,UHD730核显,I
胖好一点还是瘦好?为什么?人胖点好,还是瘦点好?当然是哪种都不好!但是如果在合理的范围内,两种都没有问题,但是如果特别胖或者特别瘦,对于身体健康来说,都有很大的影响,根据mbi来看我们每个人根据身高不同,都
退休工龄三十九年与四十年退休后有什么不同?谢邀应答!个人看法,一,例如,39年的是在2O14年1O月1日之前退休的是按老人老办法计发工资。而4O年的是在2O15年退休的是按新人新方法计算退休金。老人退休金高按老办法计算。新
怀孕变胖后你有哪些搞笑体验?怀孕后,随着孕期的慢慢增加肚子一天天变大,之前的衣服都不能穿啦。为了节省不必要的开支,冬天穿起了老公的羽绒服,内搭衣。我姐怀孕以后,鼻子变得又大又宽,我妈说,就是个大蛤蟆趴脸上,笑
你玩过最真实的战争网游是什么?当然是来自2002年的古董游戏大海战2了,画面党和手残党别来玩,steam里搜索大海战2就能找到游戏,游戏早已复活,现在是复兴街阶段,现在收益高单线路一周满级,任务福利多,熟练不用
帝国时代二都有什么花式玩法?帝国时代2真的是好玩又经典,1999年发行的游戏已经是网吧必玩游戏之一。当时网络还不是那么好用,所以很多人都选择去网吧玩这款百玩不厌的多人即时战略游戏。那么有什么玩法让人百玩不厌呢
在哪里可以查询化妆品成分?一般去美丽修行看。但是美修上有些产品没有,我就看httpwww。cosdna。com这里面蛮多产品成分信息的。另外,推荐几个讲成分的公众号言安堂美容大王和化学家kenjijoel(
我是实习生,最近主管发现我在boss上更新简历,让别人问我最近可不可以上班,我该怎么办?确实比较尴尬,我去年的时候也遇到过类似的情况。有一次闲来无事,我就用手机查看了某招聘app,其实本身并没有想着找工作,只是看看目前市场什么行情,有哪些公司在招人,尤其是我们这一个行
支付宝花呗突然被关闭什么情况?你是说支付宝关闭了花呗应用,还是你自己的花呗帐号被关闭了?说实话我不喜欢花呗的操作有次我在淘宝买东西在支付环节上没有注意不知道什么时候点花呗支付了帐单整个交易过程都以为是在用,自己