Задача
Я пытаюсь построить категоричную гистограмму в Seaborn с категориями, установленными значением в DataFrame
(Favourites
). Почему Seaborn выдает ошибку, когда я пытаюсь передать это значение в ключевое слово hue
в функции barplot
?
Что я пробовал
Я попытался разделить DataFrame на два разных DataFrames, чтобы они могли быть построены вместе, но могли получить только гистограмму с накоплением, а не параллельную категориальную диаграмму.
Я видел в документах Seaborn, что передача имени столбца категории в ключевое слово hue
позволяет классифицировать данные, но я всегда получаю сообщение об ошибке, когда пытаюсь передать ему Favourites
.
Код для фрейма данных:
data_frame = pandas.DataFrame(data=[tweet.text for tweet in tweets], columns=['Tweets'])
data_frame['User'] = numpy.array([tweet.user.screen_name for tweet in tweets])
#data_frame['ID'] = numpy.array([tweet.id for tweet in tweets])
#data_frame['Length'] = numpy.array([len(tweet.text) for tweet in tweets])
data_frame['Date'] = numpy.array([tweet.created_at for tweet in tweets])
#data_frame['Source'] = numpy.array([tweet.source for tweet in tweets])
data_frame['Favourites'] = numpy.array([tweet.favorite_count for tweet in tweets])
#data_frame['Retweets'] = numpy.array([tweet.retweet_count for tweet in tweets])
data_frame['Day'] = data_frame['Date'].dt.day_name()
data_frame.set_index(['User'],inplace=True)
Код для печати:
frames = [user1, user2]
result = pandas.concat(frames)
x = result.Day
y = result.Favourites
result.groupby('Day',as_index=False, sort=True, group_keys=True).agg({'Favourites':'sum'})
#user2.groupby('Day',as_index=False, sort=True, group_keys=True).agg({'Favourites':'sum'})
plotted = sns.barplot(x,y,color="skyblue",data=result,hue='User',order=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'])
sns_plot = plotted.get_figure()
sns_plot.savefig('plot.png')
Пример данных
User Date Favourites Day
AOC 1/3/2019 500 Monday
AOC 2/3/2019 200 Tuesday
realDonaldTrump 3/3/2019 600 Wednesday
realDonaldTrump 4/3/2019 700 Thursday
Ожидаемые и фактические результаты
Я хочу диаграмму вот так:
Это ошибка / трассировка стека, которую я получаю:
решаемые
Проблема была в этой строке в определении DataFrame (которое я удалил),
data_frame.set_index(['User'],inplace=True)