Участок турник с приморским участком - PullRequest
0 голосов
/ 03 января 2019

Я сканирую каталог, читаю кучу файлов и анализирую их.Все, что мне нужно, это получить размер кадра данных.Я делаю это с помощью len(df.index).

В каждом каталоге есть 10 файлов, пронумерованных от 0 до 9. Я добавляю все эти len(df.index) в кадр данных, где буквы ['A', 'B', 'C', 'D'] взяты из списка категорий.,Эти значения добавляются к фрейму данных df2.loc[seed,nd] = len(df.index).Результирующий фрейм данных выглядит следующим образом:

         A         B         C       D
0  10515.0  160592.0  221621.0  198884.0
1   9777.0  161307.0  222064.0  199841.0
2  10957.0  159954.0  219553.0  198622.0
3  12731.0  157862.0  221250.0       NaN
4  11765.0  162177.0       NaN       NaN
5   8849.0  155631.0       NaN       NaN
6  10549.0  160976.0       NaN       NaN
7   8694.0  158953.0       NaN       NaN
8  11696.0  160952.0       NaN       NaN
9  10590.0  161046.0       NaN       NaN

В моем скрипте я сканирую два каталога в цикле for, X и Z, в результате получается два фрейма данных, аналогичных приведенному выше.

Проблема в том, что я пытаюсь построить этот фрейм данных с горизонтальной полосой Seaborn, используя

sns.barplot(data=df2)

, но я не знаю, как указать категорию, например, показанную здесь .

Как это можно сделать?Нужно ли менять формат моего фрейма данных?

Я бы хотел, чтобы результат был таким (из MS Excel)

enter image description here

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Я думаю, что это может быть достигнуто с помощью атрибута orient функции barblot seabon .

Пример -

import pandas as pd
import numpy as np
import seaborn as sns
df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=list('ABCD'))
sns.barplot(data=df, orient = 'h')

example plot

0 голосов
/ 03 января 2019

Вы можете использовать concat обоих DataFrames с параметром keys для указанных групп, а затем изменить их на melt, последний параметр использования hue для указания групп:

dfs = [df21, df22]

df = pd.concat(dfs, keys=('X','Z')).reset_index(level=0).melt('level_0')
sns.barplot(x='value', y='variable', hue='level_0', data=df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...