Python “如何修复”;ValueError:无法解释输入';用户'&引用;Seaborn条形图中的错误? 问题
我试图在Seaborn中绘制一个分类条形图,其中的类别由Python “如何修复”;ValueError:无法解释输入';用户'&引用;Seaborn条形图中的错误? 问题,python,pandas,python-2.7,dataframe,seaborn,Python,Pandas,Python 2.7,Dataframe,Seaborn,我试图在Seaborn中绘制一个分类条形图,其中的类别由数据框中的值设置(收藏夹)。为什么Seaborn在我尝试将此值传递到barplot函数中的hue关键字时抛出错误 我试过的 我曾尝试将数据框分为两个不同的数据框,以便它们可以一起绘制,但只能得到一个堆叠的条形图,而不是并列的分类条形图 我在Seaborn文档中看到,将category列名传递给hue关键字可以对数据进行分类,但当我尝试将收藏夹传递给它时,总会收到错误消息 数据帧的代码: 绘图代码: 示例数据 预期结果与实际结果 我想要这样的
数据框中的值设置(收藏夹)。为什么Seaborn在我尝试将此值传递到barplot
函数中的hue
关键字时抛出错误
我试过的
我曾尝试将数据框分为两个不同的数据框,以便它们可以一起绘制,但只能得到一个堆叠的条形图,而不是并列的分类条形图
我在Seaborn文档中看到,将category列名传递给hue
关键字可以对数据进行分类,但当我尝试将收藏夹
传递给它时,总会收到错误消息
数据帧的代码:
绘图代码:
示例数据
预期结果与实际结果
我想要这样的柱状图:
这是我收到的错误/堆栈跟踪:
解决了的
问题是数据帧定义中的这一行(我删除了它),
data\u frame.set\u index(['User'],inplace=True)
错误告诉您,通过data
提供的数据框没有名为“User”
的列。如果您检查数据框的代码,您可以看到它是第一列。我宁愿相信错误,也不相信这里发布的打印输出。您可以提供一个示例,以便人们可以了解更多信息。在调用sns.barplot之前,结果数据框是什么样子的?打印result.columns
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