【问题标题】:Python Pandas Matplotlib : How to Plot Graph without Numerics?Python Pandas Matplotlib:如何在没有数字的情况下绘制图形?
【发布时间】:2019-03-29 01:03:29
【问题描述】:

我想使用 Pandas 数据框使用不包含数字的两列在 python 中绘制条形图或图形。一列是操作系统,另一列是计算机名称,我想在它们之间绘制一个图表,显示哪个操作系统在多少个系统上运行,示例数据如下所示。

如何为这两个列绘制条形图或其他图表。当我尝试下面的代码时:

ax = dfdefault[['Operating System','Computer Name']].plot(kind='bar')
ax.set_xlabel("Hour", fontsize=12)
ax.set_ylabel("V", fontsize=12)
plt.show()

我收到此错误:

Error: 
TypeError: Empty 'DataFrame': no numeric data to plot  

【问题讨论】:

  • 我不确定我是否知道您要绘制的内容。你想要Operating System 的直方图吗?
  • 是的,直方图可以达到目的,即使是饼图也可以,我想要一些简单的东西,可以给出一个大致的想法,直方图还可以

标签: python python-3.x pandas matplotlib


【解决方案1】:

您需要先计算每个操作系统的出现次数,然后使用条形图或饼图进行绘制。 bar 已经需要数字数据,而您没有。计数会解决这个问题。这是一个使用饼图的示例:

df = pd.DataFrame(
    [['asd', 'win'],
     ['sdf', 'mac'],
     ['aww', 'win'],
     ['dd',  'linux']],
    columns=['computer', 'os']
)
df['os'].value_counts().plot.pie()

条形图的工作原理与此类似。只需将pie 更改为bar

【讨论】:

  • 我在 pandas 中有很多,大约 50 列,由 df['OS', 'Computer','c1','c2',.........'c50'] .我想在两列中绘制一个馅饼或任何东西 - [操作系统,计算机]。很抱歉问了一些愚蠢的事情,但我不知道怎么做。 @busybear
  • 其他列是否相关?事实上,Computer 在这种情况下似乎并不相关。您只需要计算操作系统在您的数据框中出现的次数正确吗?这就是为什么我在帖子中计算df['os'] 中的值。
  • 与本案无关,正是我想做的事情,Thanq,让我试试这个。
  • 再做一件事,以任何可能的方式组合两个操作系统 - 比如 Windows 10、Windows 10 Home、、Windows server 2008、Windows Server 2008 R2,我想组合一个或多个以使其成为一个.如果可以的话。
  • 您将不得不检查每个元素是否包含在您认为“相同”的值列表/集合中。您也可以创建一个字典来执行此操作。如果您不确定如何操作,可以编辑您的帖子。但是,如果您无法通过搜索找到答案,您真的应该在新帖子中询问。
猜你喜欢
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-09
  • 2021-12-20
  • 2021-07-21
  • 2021-12-24
  • 1970-01-01
相关资源
最近更新 更多