zoukankan      html  css  js  c++  java
  • pandas 读csv文件 TypeError: Empty 'DataFrame': no numeric data to plot

    简单的代码,利用pandas模块读csv数据文件,这里有两种方式,一种是被新版本pandas遗弃的Series.from_csv;另一种就是pandas.read_csv

    先说一下问题这个问题就是在读csv文件时,默认的数据是object类型,因而没有字符型数据可被plot,此时仅需要转换一下类型即可,如下:

    from pandas import Series
    import matplotlib.pyplot as plt
    data = Series.from_csv('daily.csv',header=0)
    #print(data.head())
    data.astype(float)
    data.plot()
    plt.show()

    完美解决这个问题,画出了下图:

    这正是想要的结果,那么另一种就是pandas.read_csv,就没有那么幸运了,你会发现csv里面存的这种数据:

    1981/1/1,20.7
    1981/1/2,17.9
    1981/1/3,18.8
    1981/1/4,14.6
    1981/1/5,15.8
    1981/1/6,15.8
    1981/1/7,15.8
    1981/1/8,17.4
    1981/1/9,21.8
    1981/1/10,20
    1981/1/11,16.2
    1981/1/12,13.3
    1981/1/13,16.7
    1981/1/14,21.5

    是不能显示为x轴label的,于是我就把第一列改成了1981....这样的数字,解决问题。这时候当然就不推荐使用第二种方法了,这么麻烦还用什么pandas,直接plt画了。

    最后,就是一定要注意数据是否有异常,有些异常数据是文本上的异常,而有些可能是语义上的异常,这都需要我们去挖掘,去除异常数据。这往往是很重要的,当然画图往往又是比较直观的方式之一。

  • 相关阅读:
    ASP.NET操作文件大全
    Jquery1.7中文文档提供下载了
    修改server2005数据库的区分大小写设置
    SQL SERVER 设置自动备份和删除旧的数据库文件
    ASP.NET关闭下载窗口
    DB2通用分页存储过程
    ASP.NET生成压缩文件(rar打包)
    上传文件实体类
    【Demo 0104】注册/注销热键
    【Demo 0018】SEH结束处理程序
  • 原文地址:https://www.cnblogs.com/cvtoEyes/p/9561493.html
Copyright © 2011-2022 走看看