Я хочу написать программу на Python, которую я могу напечатать в наборе данных #, и она получит указанный номер таблицы.У меня есть рабочее решение для раздела данных, но мой окончательный CSV-файл - 3 ГБ, и его использование приводит к ошибкам памяти.так что я пытался создать дополнительный CSV-файл, который содержит расположение начала и конца каждой таблицы.
import pandas as pd
bl = pd.read_csv(r"C:\Users\K\csvsectionofdata.csv", names=
["A","B","C","D"])
bl.loc[0:3, 'D'] = [1,1,1,1]
bl.loc[0:3, 'C'] = [0,1,2,3]
for i in range(1, len(bl)):
if bl.loc[i, "B"] == str("intensity"):
bl.loc[i, 'C'] = 0
bl.loc[i, 'D'] = bl.loc[i-1, 'D'] + 1
else:
bl.loc[i, 'C'] = bl.loc[i-1, 'C'] + 1
bl.loc[i, 'D'] = bl.loc[i-1, 'D']
sl = []
s = int(input()) - 1
print ("--------")
top = (int(bl.D.searchsorted(s, side='right')))
btm = (int(bl.D.searchsorted(s + 1, side='right')))
sl = (bl.iloc[(top + 1):(btm - 1),:])
print (sl)
Вот как выглядит «bl»:
m/z,intensity
1,5
2,250
,
m/z,intensity
12,10
13,27
14,51
15,222
16,250
17,4
,
m/z,intensity
12,2
13,7
14,19
15,189
16,250
17,3
,
m/z,intensity
12,7
И тогда результирующий CSV будет выглядеть следующим образом:
Start,End
0,2
4,10
12,18
20.......
Должен быть какой-то способ сделать это более питоническим, чем загрузка всего набора данных в память, верно?