2016-07-19 6 views
0

Я использую библиотеку pandas в python для генерации данных с несколькими индексами, то есть столбцы являются многоиндексными. Показатели: category и source. Я сохраняю эти данные как файл .csv. В файле первая строка - это значения category, а вторая строка соответствует значениям source, затем данные следуют. Я использую этот файл для визуализации в программном обеспечении Orange3. Но в качестве имени столбца требуется только первая строка, как мне заставить имя столбца использовать как комбинацию из двух.Как визуализировать данные с несколькими индексами в оранжевом?

Я просто пытаюсь визуализировать все это как гистограмму, если это возможно.

  1. Так, существует эффективно 2 (category и source) + 1 (метка строки) переменных, 3d визуализация будет лучше или
  2. 1 (category и source в сочетании с переменным) + 1 (строкой метка), 2d визуализация

category 1 1 1 1 1 2 2 source a b c d e f g label l1 1 2 3 4 5 6 7 l2 4 5 6 7 8 9 10

+0

могли бы вы предоставить несколько первых (4 -5) строки csv-файла, чтобы прояснить структуру? – astaric

+0

Я редактировал вопрос, чтобы включить образец @astaric –

ответ

0

Согласно documentation, Orange не s upport чтение многоиндексных данных.

Для визуализации данных вам необходимо преобразовать его в обычный табличный формат (по одному столбцу на каждую функцию) перед экспортом данных в csv.

Один из способов сделать это является DataFrame «s unstack метод:

df.unstack().to_csv("file.csv") 

Это создаст файл в следующем формате:

category source label 
1   a   l1  1 
1   a   l2  4 
1   b   l1  2 
... 

Таким образом, вы можете использовать категорию и источник как отдельные переменные в Orange.

.

Чтобы присоединиться к категории и источника, вам необходимо flatten the hierarchical index перед экспортом в формат CSV:

df.columns = [' '.join(col).strip() for col in df.columns.values] 
df.to_csv(file.csv) 

Это будет производить данные в следующем формате:

label  1 a  1 b ... 
l1   1   2 
l2   4   5