python--pandas读取txt文件

本文介绍如何使用Pandas库读取无标题行的TXT文件,并通过设置参数header和sep来正确解析数据。演示了如何自定义列名以及处理不同分隔符的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas读取txt文件

参考链接:pandas.read_csv
pandas.read_csv常用参数为:header, sep, name,其余参数待用到时再行补充
假如有个名为dates.txt的文件,其中内容如下:

20191128, 20191128
20191129, 20191129
20191130, 20191130

注意观察该文件没有标题行,类似表格的列名,那么就需要指定header=None,从而避免第一行被当成了标题行,用如下代码读取:

import pandas as pd
dates = pd.read_csv('dates.txt',header=None) # 获取日期数据
print(dates)
for ii in dates.index:
    print(ii)
    date_time = dates.loc[ii].values
    print(date_time)

打印的结果如下:

          0         1
0  20191128  20191128
1  20191129  20191129
2  20191130  20191130
0
[20191128 20191128]
1
[20191129 20191129]
2
[20191130 20191130]

结果中我们注意到,因为没有标题行,结果自动添加了0和1两个数作为名称,如果想要添加标题,可以用如下代码:

import pandas as pd
dates = pd.read_csv('dates.txt', names=['col1','col2'], header=None) # 获取日期数据
print(dates)
for ii in dates.index:
    print(ii)
    date_time = dates.loc[ii].values
    print(date_time)

这样打印的结果就是:

       col1      col2
0  20191128  20191128
1  20191129  20191129
2  20191130  20191130
0
[20191128 20191128]
1
[20191129 20191129]
2
[20191130 20191130]

每一行的结果都是一个list,可以通过列表的索引来指定取哪个值。

txt文件中数据是逗号分隔的,而pandas.read_csv默认使用的分隔符就是逗号,那如果是其他的符号呢,如空格,“-”等。这时sep就起到作用了。
假如dates.txt的文件内容如下:

20191128 20191128
20191129 20191129
20191130 20191130

执行如下代码:

import pandas as pd
dates = pd.read_csv('dates.txt', names=['col1','col2'], header=None, sep=" ") # 获取日期数据
print(dates)
for ii in dates.index:
    print(ii)
    date_time = dates.loc[ii].values
    print(date_time)

执行结果如下:

       col1      col2
0  20191128  20191128
1  20191129  20191129
2  20191130  20191130
0
[20191128 20191128]
1
[20191129 20191129]
2
[20191130 20191130]

我们指定sep为空格,则数据被正确的读取了出来。那如果不指定sep呢,结果如下:

                col1  col2
0  20191128 20191128   NaN
1  20191129 20191129   NaN
2  20191130 20191130   NaN
0
['20191128 20191128' nan]
1
['20191129 20191129' nan]
2
['20191130 20191130' nan]

可以看到,数据并没有被正确分割,这说明在数据分隔符不是逗号的情况下,必须使用sep来指定分割方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值