绘制按列分组的熊猫数据框

巴贾吉

我有以下熊猫数据框“ df”:

---------------------------------------------------
             C1     C2     C3      C4      Type
---------------------------------------------------
    Name 
---------------------------------------------------
     x1       a1     b1      c1      d1     'A'
     x2       a2     b2      c2      d2     'A'
     x3       a3     b3      c3      d3     'B'
     x4       a4     b4      c4      d4     'B'
     x5       a5     b5      c5      d5     'A'
     x6       a6     b6      c6      d6     'B'
     x7       a7     b7      c7      d7     'B'
---------------------------------------------------

此数据帧中有6列:Name, C1, C2, C3, C4, and Type我想使用按“类型”列分组的此数据框生成两条线图(单独的图-不在同一条图上的两条线)。基本上,我想针对按类型分组的Name绘制C1的值。因此,在一张图表上,我想在另一张图表(x1, c1), (x2, c2), (x5, c5) on one plot, and (x3,c3), (x4, c4), (x6,c6), and (x7,c7)上。

请注意,名称和其他列在不同的行中。

我在SO上找到了类似的问题以在此处绘制箱线图,因此我尝试对其进行修改以用于线图。我尝试使用,df.plot(column='C1', by='Type')但似乎没有属性'column' for a plot()

关于如何实现目标的任何想法?

失踪

您可以将“类型”列添加到索引,并对其进行拆栈,以便根据类型的值将C1的值分为两列,然后对其进行绘制,例如:

import pandas
df = pandas.DataFrame({'Values': randn(10), 'Categories': list('AABABBABAB')}, index=range(10))
df.set_index('Categories', append=True).unstack().interpolate().plot(subplots=True)

注意,对于线图,您需要'interpolate()'。

或者,您可以根据“类型”(在这些示例中为“类别”)的值选择数据并分别绘制它们,例如:

fig, axes = plt.subplots(ncols=2)
df[df.Categories=='A'].Values.plot(ax=axes[0])
df[df.Categories=='B'].Values.plot(ax=axes[1])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章