chp02-01文本文件的读写

本文详细介绍了Pandas库在Python中进行文件读写的各种方法,包括read_csv、read_excel等读取函数和to_csv、to_excel等写入函数。通过实例展示了如何处理不同分隔符的文件,设置表头,以及使用关键参数如dtype、skiprows和skipfooter。此外,还演示了如何使用to_csv写出文件,并调整输出参数如编码、分隔符和是否包含索引。
摘要由CSDN通过智能技术生成

pandas中常见文件读写方法

+ **read_csv**

+ **read_excel**

+ read_hdf

+ read_sql

+ read_json

+ read_msgpack (experimental)

+ read_html

+ read_gbq (experimental)

+ read_stata

+ read_sas

+ read_clipboard

+ read_pickle

+ **to_csv**

+ **to_excel**

+ to_hdf

+ to_sql

+ to_json

+ to_msgpack (experimental)

+ to_html

+ to_gbq (experimental)

+ to_stata

+ to_clipboard

+ to_pickle

其它数据源:

+ 数据库

+ 读取网页数据,网络文件

+ 读取股票数据

+ yahoo,世界银行等等

读取你的第一个文件

文本文件是我们在工作中最常见的数据文件,常见的格式有csv、tsv、txt等,这节课我们就来介绍一些这种类型的文件的读写。

读取文本文件,我们只需要使用pandas中的`read_csv`函数即可。csv、tsv、txt格式的文件都可以用`read_csv`这一个函数读取。

# 首先导入我们所需要的模块

import pandas as pd

读入带表头的数据

df = pd.read_csv('../data/housing.csv') # 默认会把第一行当做表头

print(df.shape)#查看数据行列

df.head()#查看前5行

pd.read_csv?常见参数 pd.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=b'.', 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)

需要掌握的几个参数:

1. 文件路径:这个毫无疑问,不然程序怎么知道你要读取的是哪个文件

2. 分隔符sep:默认为',',具体的根据你的文件中具体的分隔符来指定。常见的有'\t',',','|'等。

3. 编码方式encoding:默认为'utf-8',也可能是其他方式,常见的编码方式有utf-8,gbk,utf-16等。

4. header:默认把第一行数据当做表头。当读入无表头的数据时,要将其设置为None。

读取不带表头的文件

df = pd.read_csv('../data/play_noheader.txt',sep=',',encoding='utf-8')

print(df.shape)#查看数据行列

df.head()#查看前5行

# 通过header = None 设置首行为非表头

df = pd.read_csv('../data/play_noheader.txt',sep=',',encoding='utf-8',header=None)

print(df.shape)#查看数据行列

df.head()#查看前5行

# 我们也可以通过制定names参数,指定表头

colnames = ['weather','Temperature','Humidity','Wind','Golfplay']

df = pd.read_csv('../data/play_noheader.txt',sep=',',encoding='utf-8',header=None,names = colnames)

print(df.shape)#查看数据行列

df.head()#查看前5行

当然也可以在读取进来后,设置表头字段名。

df.columns = colnames

读取其他分隔符的文件

读取其他分隔符的文件时,只需要指定sep参数分隔符即可。如我们这里有一份以?分隔的文本文件。

df = pd.read_csv('../data/play_sep.txt',sep='?',encoding='utf-8')

print(df.shape)#查看数据行列

df.head()#查看前5行

几个非常用参数

- dtype 读取时指定字段类型,有些时候默认读入时,字段类型识别的不对,这时我们可以通过指定dtype参数强制设置字段类型。

- skiprows 读取时跳过前n行,有时候文件的前n行不是我们需要的,可以直接设置skiprows进行跳过不读入。

- skipfooter 读取时跳过后n行,有时候文件的后n行不是我们需要的,可以直接设置skipfooter进行跳过不读入。

- nrows 现在只读入n行数据,有时候要读取的文件太大,而我们只想简单看看这个数据都有哪些字段等信息,可以设置只读取n行数据,快速查看。

使用skiprows和skipfooter时,需配合使用参数 engine = 'python'

df = pd.read_csv('../data/housing.csv',dtype={'Year.Built':'str'})

df.info()

df = pd.read_csv('../data/housing.csv',skiprows= 1000,engine='python')

df = pd.read_csv('../data/housing.csv',skipfooter = 1000,engine='python')

df = pd.read_csv('../data/housing.csv',nrows = 100)

df.shape

写出你的第一个文件

在`pandas`中,与`read_csv`相对应地,也存在写出函数`to_csv`。

常用的几个参数:

1. 文件路径:这个毫无疑问,不然程序怎么知道你要把文件输出到哪里

2. 分隔符sep:默认为',',具体的根据你的文件中具体的分隔符来指定。常见的有'\t',',','|'等。

3. 编码方式encoding:默认为'utf-8',也可能是其他方式,常见的编码方式有utf-8,gbk,utf-16等。

4. header:只能设置为True或False,默认为True,把第一行数据当做表头。当读入无表头的数据时,要将其设置为False。

5. index:输出文件是否带索引,推荐设置为False,不带索引列。

如我们这里将上文中的df写出到data目录下,命名为play_output.csv,设置分隔符为|,编码方式为utf-8,带表头,不带索引。

df.to_csv('../data/play_output.csv',index=False,encoding='utf-8',sep='|')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值