pandas---文件导入和导出细节详解

数据的导入和导出

Pandas能从文本文件和Excel文件中读入数据,形成dataframe,也可以将dataframe导出到文本文件、Excel文件中存储起来。

导入函数有(1)pd.read_csv():导入后缀名为.csv,.txt的文本文件;(2)pd.read_excel():导入后缀名为.xlsx的Excel文件。导出函数有(1)df.to_csv)():将数据存储到csv文件或txt文件中;(2)df.to_excel():将数据存储到Excel文件中;

无论是导入函数还是导出函数,都有参数header,表示dataframe的列索引。而行索引在导入函数中用参数index_col表示,将某列指定为行索引;行索引在导出函数中用参数index表示,指示是否要存好行索引。

导入文件

导入文本文件:pd.read_csv()

pd.read_csv()函数不光可以导入csv文件,也可以导入txt文件。

# 导入test.csv文件
df = pd.read_csv('test.csv')
# 导入test.txt文件
df = pd.read_csv('test.txt')
导入Excel文件:pd.read_excel()
# 导入test.xlsx文件
df = pd.read_excel('test.xlsx')
相对路径和绝对路径

导入文件时,要指定文件所在的路径,可以是相对路径,也可以是绝对路径。

# 导入windows下的绝对路径:导入E盘下的test.csv
pd.read_csv('E:\test.csv')
# 导入mac下的绝对路径:导入xxx文件夹下的test.csv
pd.read_csv('/Users/xxx/test.csv')

相对路径指的是当前的py文件所在的路径。当要导入的文件和py文件在同一个文件夹下,则可以用相对路径导入。

pd.read_csv('test.csv')

路径的转义?

Location = r'./test.csv' 
df = pd.read_csv(Location)

注意,因为斜线是一个特殊字符,在字符串之前放置前导的 r,将会把整个字符串进行转义。

默认列索引和行索引

导入文件时,若不指定列索引,则默认将文件中的第一行当成dataframe列索引,并且为数据自动添加整数行索引。

# 默认将test.csv中的第一行当为列索引,自动添加从0开始的整数索引
pd.read_csv('test.csv')
不要列索引

若导入时,第一行是数据,并非列索引,则可以将参数header设置为None,即不让第一行成为列索引。但系统会自动添加从0开始的列索引。

df = pd.read_csv('test.csv', header=None)
指定某行为列索引

导入数据时默认第一行为列索引,但如果数据中第一行并非列索引,而是第k行,则可以用参数header指定第k行为列索引。

# 指定test.csv中的第3行是列索引
df = pd.read_csv('test.csv', header=3)
添加列索引

若导入的数据中,并没有列索引,需要添加列索引,则用参数names具体指定列索引。

# 指定test.csv(只有两列)中的列索引为['column1','column2']
df = pd.read_csv('test.csv', names=['column1','column2'])
指定行索引

导入数据时,会自动添加从0开始的整数行索引。若需要指定数据中第K列为行索引,则要用index_col参数。

# 指定第0列是dataframe的行索引
df=pd.read_csv('test.csv',index_col=0)
# 指定列名为'column'的列是dataframe的行索引
df=pd.read_csv('test.csv',index_col='column')
读取指定的列

有时候,我们并不想把所有的列都读入,只想读取前几列,或后几列,或指定几列。这时,可以使用usecols参数。

# 读取csv数据中的第0列,第1列,第2列。
df = pd.read_csv('test.csv', usecols=[0,1,2])
指定分隔符

文本文件中,用分隔符来分隔每个值,所以读入的时候,要用参数sep告诉函数分隔符是什么。默认的分隔符是逗号。

# 指定分隔符是点号
df = pd.read_csv(filename,sep='.')
指定读入excel的sheet页

Excel文件在读入时,默认读取第一页。但如果Excel文件有多页,且不想读取第一页而是其他页,则要用参数sheetname传入读入页的名称。

# 导入test.xlsx文件的sheet1页
df = pd.read_excel('test.xlsx', sheetname='sheet1') 

导出数据

写入文本文件:df.to_csv()

pandas可将dataframe存储到csv文件或txt文件中。存储的路径可以是绝对路径,也可以是先对路径。

# 将数据表df存入当前py文件所在位置下的test.csv文件中,如果没有这个文件,会自动创建
df.to_csv('test.csv')
# 将数据表df存入当前py文件所在位置下的test.txt文件中,如果没有这个文件,会自动创建
df.to_csv('test.txt')
写入excel文件:df.to_excel()

写入Excel文件时,默认会写入Excel文件中的第一页。

# 将数据表df写入test.xlsx文件中
df.to_excel('test.xlsx')

如果想要写入指定的页,则用参数sheet_name。

# 将数据表df写入test.xlsx文件中'Sheet1'页
df.to_excel('test.xlsx',sheet_name='Sheet1')
存储行索引

存储时,默认将数据表中的行索引也存储到文件中。

# test.csv的行索引将会被存储起来
df.to_csv('test.csv')
不存储行索引

导出数据时,默认是要存储行索引的。不存储行索引的话,设置index的值为False。

df.to_csv('test.csv', index = False)
不存储列索引

导出数据时,默认是要存储列索引的。不存储列索引的话,设置header的值为False。不要列索引,导出的数据就没有列名。

df.to_csv('test.csv', header = False)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值