Как исправить ошибку «ValueError: Не удалось интерпретировать ошибку ввода« Пользователь »» на линейчатом графике Seaborn? - PullRequest
0 голосов
/ 26 марта 2019

Задача

Я пытаюсь построить категоричную гистограмму в 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

Ожидаемые и фактические результаты

Я хочу диаграмму вот так: this

Это ошибка / трассировка стека, которую я получаю: this

решаемые

Проблема была в этой строке в определении DataFrame (которое я удалил), data_frame.set_index(['User'],inplace=True)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...