第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 csv 導(dǎo)入數(shù)據(jù),其中每個列表分為多行

從 csv 導(dǎo)入數(shù)據(jù),其中每個列表分為多行

大話西游666 2023-09-05 15:47:30
我有一個 csv 文件,它看起來像這樣:[12  34 45 22 3 5 34 33 2 67 5 55 2 90 88 12 34][245  4 13][33 90 50 22 90 1 23 44 876  10 7] ...等等。換句話說,csv 文件被分成由單個空格或雙空格分隔的數(shù)字列表,如果數(shù)字列表超過一定數(shù)量的值(在我的例子中為 14),它會在下一行繼續(xù)該列表,直到號碼列表結(jié)束。數(shù)字列表不以逗號分隔,但每個新列表均以方括號開頭和結(jié)尾。我想將 csv 文件導(dǎo)入到列表列表中,如下所示:[[12, 34, 45, 22, 3, 5, 34, 33, 2, 67, 5, 55, 2, 90, 88, 12, 34], [245, 4, 13], [33, 90, 50, 22, 90, 1, 23, 44, 876, 10, 7], [...]]我怎樣才能做到這一點(diǎn)?我嘗試過 np.loadtxt 和 pandas,但兩者都將每一行視為自己的觀察結(jié)果。提前致謝!編輯:數(shù)字實(shí)際上是用一個空格或兩個空格分隔的。
查看完整描述

3 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個贊

以下應(yīng)該有效:


with open('myfile.csv') as f:

    t=f.read()

t=t.replace('\n', '').replace('  ', ' ').replace(' ', ',')

l=t.split(']')

l.pop()

l=[i.replace('[', '') for i in l] 

result=[[int(s) for s in k.split(',')] for k in l]

print(result)

輸出:


[[12, 34, 45, 22, 3, 5, 34, 33, 2, 67, 5, 55, 2, 90, 88, 12, 34], [245, 4, 13], [33, 90, 50, 22, 90, 1, 23, 44, 876, 10, 7]]



查看完整回答
反對 回復(fù) 2023-09-05
?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個贊

您可以使用內(nèi)置csv庫,然后只需拆分每行的值:


import csv


with open('test.csv', 'r') as testCsvFile:

    testCsv = csv.reader(testCsvFile)

    listOfLists = []

    for row in testCsv:

        listOfLists.append([int(val) for val in row[0][1:-1].split(' ')])

    print(listOfLists)



# Output

# [[12, 34, 45, 22, 3, 5, 34, 33, 2, 67, 5, 55, 2, 90, 88, 12, 34], [245, 4, 13], [33, 90, 50, 22, 90, 1, 23, 44, 876, 10, 7]]

編輯:更新了解析以將值轉(zhuǎn)換為ints


查看完整回答
反對 回復(fù) 2023-09-05
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊

這是你想要的:


>>> with open("file.txt", "r") as f:

...     content = f.read().replace("\n", "")

... 

>>> content = [[int(i) for i in c.split(" ")] for c in content[1:-1].split("][")]

>>> content

[[12, 34, 45, 22, 3, 5, 34, 33, 2, 67, 5, 55, 2, 90, 88, 12, 34], [245, 4, 13], [33, 90, 50, 22, 90, 1, 23, 44, 876, 10, 7]]

首先將整個文件作為一個字符串讀取,去掉第一個和最后一個字符 ([和]) 以及換行符 ( \n)。然后分割成塊除以][。最后用空格字符分割每個塊并將它們轉(zhuǎn)換為整數(shù)。


查看完整回答
反對 回復(fù) 2023-09-05
  • 3 回答
  • 0 關(guān)注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號