Постройте большие данные с помощью vaex - PullRequest
1 голос
/ 05 мая 2020

Я изо всех сил пытался создать график 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

1 Ответ

1 голос
/ 20 мая 2020

Здесь много проблем:

  • Табулат сломал их HTML вывод: https://github.com/vaexio/vaex/issues/675. Вскоре мы планируем обходной путь.
  • vaex.open вызывает http://docs.vaex.io/en/latest/api.html#vaex .from_csv , который принимает copy_index, вместо этого вызывает vaex.open('...', convert=True, copy_index=False). Я открыл проблему для https://github.com/vaexio/vaex/issues/754, чтобы изменить значение по умолчанию.
  • df. это сокращение от df [""], когда df. не существует, df.cov уже существует :), не повезло.
  • Проблема с виджетами является общей проблемой установки ipywidgets, сначала убедитесь, что вы можете отобразить обычный ipywidgets.Button ().
...