У меня есть dataframe (Df), содержащих несколько колонок и два из них хранить список в каждой строке:Plotting столбец, содержащий списки с помощью панд
Index list1 list2
A [ 0.09173306 0.12331911 0.20057651 ] [ 0.3128322 0.27153913 ]
D [ 0.03861522 0.10524985 ] [ 0.37265687 0.48347806 ]
E [ 0.02124905 0.01149118 ] [ 0.04348405 0.17057435 0.37838683 0.37481453 ]
Я хотел бы построить эти списки в виде гистограммы с использованием pandas
встроенный plot
функция.
Использование
df.list1.apply(lambda x:x[0]).plot(kind='bar', width=0.9, ax=bar_ax)
Я могу построить первый элемент каждого списка. Однако, пытаясь
df.list1.plot(kind='bar', width=0.9, ax=bar_ax)
результаты в следующей ошибки:
Empty 'DataFrame': no numeric data to plot
То, что я хотел бы сделать это, (1) сюжет как список в один единый сюжет, как так:
df[['list1','list2']].plot(kind='bar', width=0.9, ax=bar_ax)
И (2) также отображает первые элементы каждого списка только в одном отдельном столбце, который я могу сделать следующим образом:
df.list1.apply(lambda x:x[0]).plot(kind='bar', width=0.9, ax=bar_ax, color='blue')
df.list2.apply(lambda x:x[0]).plot(kind='bar', width=0.9, ax=bar_ax, color='red')
Однако, это приводит к бруски затевается друг на друга (не укладывается!) - Я хочу, чтобы они сгруппированы.
Метод applymap - это то, что я искал. Спасибо! – Fourier