Я изо всех сил пытался создать график csv с миллионами строк. Я пытаюсь использовать модуль vaex, но застрял ..
import vaex
# converts and reads large csv into hdf5 format
df = vaex.open("mydir/cov2.csv", convert='hdf5')
df.head()
Вывод
# chr pos cov index
<i style='opacity: 0.6'>0</i> NC_024468.2 1.34986e+08 6 0
<i style='opacity: 0.6'>1</i> NC_024468.2 1.34986e+08 6 1
<i style='opacity: 0.6'>2</i> NC_024468.2 1.34986e+08 6 2
CSV конвертируется в hdf5 и загружается, но там теперь 2 индекса, 1 со странным форматированием HTML. Когда я пытаюсь построить график, как в документации , и и решение, протестированное в этом потоке :
df.plot_widget(df.pos, df.cov)
, я получаю ошибку значения.
ValueError: <bound method DataFrame.cov of
# chr pos cov index
0 NC_024468.2 134986302 6 0
1 NC_024468.2 134986303 6 1
... ... ... ... ...
2,704,117 NC_024468.2 137690419 0 2704117
2,704,118 NC_024468.2 137690420 0 2704118 > is not of string or Expression type, but <class 'method'>
Решение было перейти на df.col.cov или df ["cov"]. Тем не менее, теперь я получаю пустой результат от метода plot_widget:
PlotTemplate(components={'main-widget': VBox(children=(VBox(children=(Figure(axes=[Axis(color='#666', grid_col…
Plot2dDefault(w=None, what='count(*)', x='pos', y='cov', z=None)
Кто-нибудь может мне помочь?
С уважением, Рикардо
EDIT
Образец данных csv. Столбец pos увеличивается на 1 в каждой строке (137 миллионов), а cov почти всегда 0, но в некоторых областях увеличивается до 1-400:
chr,pos,cov
NC_024468.2,1,0
NC_024468.2,2,0
NC_024468.2,3,0
.....
NC_024468.2,137690418,7
NC_024468.2,137690419,6
NC_024468.2,137690420,6