У меня есть следующий кадр данных со столбцами id
, start
, end
, name
:
A 7 340 string1
B 12 113 string2
B 139 287 string3
B 301 348 string4
B 379 434 string5
C 41 73 string6
C 105 159 string7
, и я читаю это в python3, используя pandas
:
import pandas
df = pandas.read_csv("table", comment="#", header=None, names=["id", "start", "end", "name"])
Теперь мне нужно разобрать df
и извлечь для каждого id
start
, end
и name
в список следующего формата:
mylist = [GraphicFeature(start=XXX, end=YYY, color="#ffffff", label="ZZZ")]
XXX
здесь start
, YYY
- end
, ZZZ
- «имя».Таким образом, список содержит столько элементов, сколько строк в id
.GraphicFeature
- это просто имя члена модуля.
Я думал о циклическом цикле передачи данных следующим образом:
uniq_val = list(df["id"].unique())
for i in uniq_val:
extracted = df.loc[df["id"] == i]
Но как мне построить mylist
?(После построения списка будут некоторые другие команды построения).
Поэтому мой ожидаемый «результат» в цикле:
для идентификатора A
:
mylist = [GraphicFeature(start=7, end=340, color="#ffffff", label="string1")]
для идентификатора B
:
mylist = [GraphicFeature(start=12, end=113, color="#ffffff", label="string2"), GraphicFeature(start=139, end=287, color="#ffffff", label="string3"), GraphicFeature(start=301, end=348, color="#ffffff", label="string4"), GraphicFeature(start=379, end=434, color="#ffffff", label="string5")]
для идентификатора C
:
mylist = [GraphicFeature(start=41, end=73, color="#ffffff", label="string6"), GraphicFeature(start=105, end=159, color="#ffffff", label="string7")]