如何处理空的“DataFrame”:没有数字数据来绘制错误以在图表上获取字符串

Posted

技术标签:

【中文标题】如何处理空的“DataFrame”:没有数字数据来绘制错误以在图表上获取字符串【英文标题】:How to handle Empty 'DataFrame': no numeric data to plot error to take string on the graphs 【发布时间】:2020-06-03 11:32:38 【问题描述】:

我正在为我的项目做如下工作;

df =pd.DataFrame (City: ['London', ‘Jakarta’, 'Newyork', 'Mumbai'],
‘Staff’: ['1000','2000','3000','4000'])
print (df.head())
df.plot(kind='line',x=’City’,y=’Staff’,color='red')
plt.show()

对于此代码,我收到错误消息 TypeError: Empty 'DataFrame': no numeric data to plot.

然后我在sn-p下面添加:

df.Staff=pd.to_numeric(df.Staff)

但得到同样的错误。 有没有办法在图上取字符串? 或者我需要重新定义为;

x = ['London', ‘Jakarta’, 'Newyork', 'Mumbai']
y = ['1000','2000','3000','4000']

我检查了以前的解决方案,但没有找到任何东西

【问题讨论】:

【参考方案1】:

您的错误是由于您输入的数据格式不正确。请参阅下面的示例(注意Staff 列,输入时为数字,而不是字符串):

df =pd.DataFrame ('City': ['London', 'Jakarta', 'Newyork', 'Mumbai'],
                   'Staff': [1000,2000,3000,4000])
df.plot(kind='line',x='City', y='Staff', color= 'red')

如果您仍想以字符串形式输入数字数据,以下内容将为您提供帮助:

df =pd.DataFrame ('City': ['London', 'Jakarta', 'Newyork', 'Mumbai'],
                   'Staff': ['1000','2000','3000','4000'])

df['Staff'] = df['Staff'].astype("int") # astype("float")
df.plot(kind='line',x='City', y='Staff', color= 'red')

甚至:

df =pd.DataFrame ('City': ['London', 'Jakarta', 'Newyork', 'Mumbai'],
                   'Staff': ['1000','2000','3000','4000'])

df['Staff'] = pd.to_numeric(df['Staff'])
df.plot(kind='line',x='City', y='Staff', color= 'red')

【讨论】:

谢谢谢尔盖!它使用 plt.show() 对我有用,但城市名称未显示在图表上。有什么线索吗?谢谢和问候! matplotlib 的版本? 嗨,mplb 上的版本是 2.2.2 嗯,我的是 3+,它会显示城市名称,如您所见。 好吧,实际上我相信它们会显示在图上......尝试保存图像并在图像编辑器或浏览器中打开。

以上是关于如何处理空的“DataFrame”:没有数字数据来绘制错误以在图表上获取字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何处理空的 JSON 对象?

加入多个表后如何处理空值

@Tableau 设计技巧 10:Tableau中如何处理空值

java.lang.NullPointerException - 如何处理空指针异常

java.lang.NullPointerException- 如何处理空指针异常

string.Format 如何处理空值?