我正在嘗試從我收到的文本檔案中匯入資料。
文本檔案有點大(400 MB)。可從此鏈接(https://drive.google.com/file/d/11CwId3feJRZGvP2OUAtixuZEFztrCP3W/view?usp=sharing)獲得。鑒于其大小,下載可能需要幾分鐘。
檔案中的資料是我以前從未遇到過的格式。列之間的分隔符似乎是分號,資料行之間似乎被一個空白行隔開。
我無法讀取資料。以下是我用來嘗試從檔案中匯入一列字串資料和兩列浮點資料的 Python 代碼:
import numpy as np
f = 'summ.txt'
ID = np.loadtxt(f, dtype=np.str, unpack=True, usecols=[4], skiprows=8, delimiter = '; ')
hbeg, hend = np.loadtxt(f3, unpack=True, usecols=[67,73], skiprows=8, delimiter = '; ')
解決方案/指導會很棒。
uj5u.com熱心網友回復:
我只是csv用來重新格式化它
import csv
import time
start = time.time()
with open('summ.txt') as fin, open('output.txt', 'w') as fout:
csv_reader = csv.reader(fin, delimiter=';') # read semicolon
csv_writer = csv.writer(fout, delimiter=',') # write comma
for row in csv_reader:
if row: # skip empty row
row = [x.strip() for x in row] # remove spaces
csv_writer.writerow(row)
end = time.time()
print('time:', end-start)
在我的電腦上花了大約 31 秒。
但是您也可以將值保留為 2D 串列并轉換為numpy array或pandas DataFrame
import csv
import time
start = time.time()
IDs = []
hbeg = []
hend = []
with open('Pulpit/summ.txt') as fin:
csv_reader = csv.reader(fin, delimiter=';')
for row in csv_reader:
if row:
row = [x.strip() for x in row]
if len(row) > 1:
IDs.append(row[4])
hbeg.append(row[64])
hend.append(row[73])
end = time.time()
print('time:', end-start)
print(IDs[:10])
print(hbeg[:10])
print(hend[:10])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/446357.html
