Python 将数据导入Seaborn箱线图的困难

Python 将数据导入Seaborn箱线图的困难,python,pandas,csv,seaborn,Python,Pandas,Csv,Seaborn,编辑:下面的用户#kgoettler提供了一个解决方案。这个问题源于Seaborn箱线图,该箱线图要求数据按x轴上的变量和y轴上的值进行组织。下面的脚本将数据重新组织为与Seaborn Boxplot兼容的格式 原始问题:我的目标是使用CSV文件中的数据生成一个方框图。我想使用Python可视化库Seaborn。数据由公共索引(对象)和每列的标题组织 我很难使用这种格式将这些数据导入到箱线图中 seaborn.boxplot(x="variable", y="value") 使用自己的box

编辑:下面的用户#kgoettler提供了一个解决方案。这个问题源于Seaborn箱线图,该箱线图要求数据按x轴上的变量和y轴上的值进行组织。下面的脚本将数据重新组织为与Seaborn Boxplot兼容的格式

原始问题:我的目标是使用CSV文件中的数据生成一个方框图。我想使用Python可视化库Seaborn。数据由公共索引(对象)和每列的标题组织

我很难使用这种格式将这些数据导入到箱线图中

seaborn.boxplot(x="variable", y="value")
使用自己的boxplot这不是问题,因为我只是使用以下格式根据标题指定要使用的列

boxplot = data.boxplot(column=['header1', 'header2', 'header3'])

我还希望不必按标题指定每个单独的列,而是rater自动选择文件中的所有列


非常感谢所有反馈和意见

像这样的方法应该会奏效:

导入matplotlib.pyplot作为plt
导入seaborn作为sns
作为pd进口熊猫
sns.set(style='whitegrid')
csv_file='/path/to/file.csv'
df=pd.read\u csv(csv\u文件)
df=(df
.set_index(['Object'])#将'Object'列设置为索引
.重命名_轴(“公制”,轴=1)#将列轴重命名为“公制”
.stack()#将列堆叠到索引中
.rename('Score')#重命名其余列'Score'
.reset_index()#重置索引
)
这将为您提供一个如下所示的数据帧:

对象度量分数
0 MT1 B1A1平均八字得分0.426824
1 MT1 B1A2平均八字得分0.431351
2 MT1 B1A3平均八字得分1.941473
3 MT2 B1A1平均八字得分-0.021672
4 MT2 B1A2平均八字得分3.357387
然后,要进行绘图,只需执行以下操作:

fig,ax=plt.子批次(figsize=(10,6))
ax=sns.boxplot(x='Metric',y='Score',data=df,ax=ax)
ax.集合标签(“”)

谢谢!(特别是对于脚本注释中的nice)。我删除了“csv_file='/path/to/file.csv'”,因为我使用的是自动设置路径的jupyter笔记本电脑,它工作正常。经过深思熟虑后,我想我理解了你在这里所做的事情,我将修改我的原始帖子,这样人们就可以更轻松地找到相同问题的解决方案。Railsware很好地解释了Axis在Pandas中的工作原理,这可能对将来发现此问题的任何人都有用,并且希望了解解决方案脚本。