#pandas #charts #line
#pandas #Диаграммы #строка
Вопрос:
PARENT Week Month Weekend
---------------------------------------
1010D AX1 665 1633 687
1009A BX1 1372 1484 1173
1013B CX1 895 941 777
1007B DX1 829 932 773
Это мой файл mydata.csv. (извините, я не смог выровнять значения строк по определенным столбцам, задав вопрос в формате stackoverflow. @glhr
Как можно нарисовать линейную диаграмму размером BX1 в столбце NAME для значений недели, месяца и выходных дней с использованием Pandas?
Комментарии:
1. Вам это нужно
df.loc[df['NAME'] == 'BX1', ['Week','Month','Weekend']].plot()
? Какие значения выводятся из выборочных данных? Возможно ли дублированиеBX1
?2. да, это должно работать, если несколько значений
BX1
, если только одно, то нет.3. #израэль <br/> Я использую следующий код, но pandas показывает пустую диаграмму <br/>импортируйте pandas как pd<br/> <br> импортируйте matplotlib.pyplot как plt <br/> %matplotlib inline <br/> df = pd.read_csv(‘mydata.csv’) <br/> df.loc[df[‘NAME’] == ‘BX1’, [‘Неделя’, ‘Месяц’, ‘Выходные’]].plot() <br/>
4. если уникальные значения
BX1
, то это ожидаемо. Итак, сначала вам нужно выполнить транспонирование, а затем построить график поdf.loc[df['NAME'] == 'BX1', ['Week','Month','Weekend']].T.plot()
?5. @jezrael BX1 имеет 3 значения — Неделя = 1372, месяц = 1484 и выходные = 1173. просто нужен код для извлечения строки BX1 и отображения ее значений за неделю / выходные / месяц на простой линейной или столбчатой диаграмме.
Ответ №1:
Если только уникальное значение BX1
значение после фильтрации по boolean indexing
транспонировать и добавить DataFrame.squeeze
для преобразовать один столбец DataFrame
в Series
и построить график по plot.bar
:
df.loc[df['NAME'] == 'BX1', ['Week','Month','Weekend']].T.squeeze().plot.bar()
Или:
df.loc[df['NAME'] == 'BX1', ['Week','Month','Weekend']].T.squeeze().plot()
Комментарии:
1. именно то, что мне было нужно! Спасибо @jezrael.
2. получилось! Спасибо. Я совершенно новичок в stackoverflow.
3. Хорошее использование squeeze. 🙂
4. @anky_91 — Спасибо 🙂