[英]How to read a tab delimited file into Python with rows of unequal length?
我有一個文本文件,它是測量結果。 當 object 不在要測量的正確位置時,它無法進行全套測量,這會導致文本文件中的行長度不等。
如何在 Python 中讀取? 我必須用空格填寫文本文件中的空格嗎?
數據是什么樣子的:
我試過的代碼:
from numpy import loadtxt
lines = 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)
但它什么也沒返回,我喜歡看數據,看看它是否具有正確的格式。
該錯誤消息表明您正在嘗試導入 header 行。 使用skiprows
參數來loadtxt
跳過這一行:
lines = loadtxt(file_to_read, comments="#", delimiter="\t", skiprows=1, unpack=False)
您可以在手冊中閱讀有關loadtxt
function 的更多信息。
使用 pandas 應該可以解決問題:
import pandas as pd
pd.read_csv('data.csv', sep='\t').to_numpy()
output:
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
它還可以輕松地與 pandas 一起使用,將 header 保留為列:
import pandas as pd
data = pd.read_csv(file_to_read, sep='\t')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.