为了账号安全,请及时绑定邮箱和手机立即绑定

如何将制表符分隔的文件读入具有不等长行的 Python?

如何将制表符分隔的文件读入具有不等长行的 Python?

元芳怎么了 2023-03-22 17:04:45
我有一个文本文件,它是测量结果。当对象不在正确的测量位置时,它无法进行全套测量,这会在文本文件中产生不等长的行。如何用 Python 读取它?我是否必须用空格填充文本文件中的空格?数据是什么样的:我试过的代码:from numpy import loadtxtlines = loadtxt(file_to_read, comments="#", delimiter="\t", unpack=False)但它给出了一个错误:ValueError: could not convert string to float: 'Height\tLength\tVolume\tSpeed\tWeight'然后我尝试了:file_to_read = ('/Users/path/to/file//dummy_data.txt')file_object = open(file_to_read, 'r')file_object.read()print(file_object)但它什么也没返回,我喜欢查看数据以查看其格式是否正确。
查看完整描述

3 回答

?
ibeautiful

TA贡献1993条经验 获得超6个赞

使用熊猫应该可以解决问题:


import pandas as pd

pd.read_csv('data.csv', sep='\t').to_numpy()

输出:


array([[1. , 0.5, 0.2],

       [0.1, nan, nan],

       [nan, 0.1, 5. ]])

其中data.csv包含:


A   B   C

1   .5  .2

.1      

    .1  5


查看完整回答
反对 回复 2023-03-22
?
DIEA

TA贡献1820条经验 获得超3个赞

该错误消息表明您正在尝试导入标题行。使用skiprows参数 toloadtxt跳过此行:

lines = loadtxt(file_to_read, comments="#", delimiter="\t", skiprows=1, unpack=False)


查看完整回答
反对 回复 2023-03-22
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

它还可以轻松地与 pandas 一起使用,将标题保留为列:

import pandas as pd
data = pd.read_csv(file_to_read, sep='\t')


查看完整回答
反对 回复 2023-03-22
  • 3 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号