数据分析 常见异常及解决办法(一)

简介: 在使用Jupyter Notebook读取数据进行分析时,如下:

1.Jupyter读取数据警告ParserWarning: Falling back to the ‘python’ engine because the ‘c’ engine does not support regex separators

在使用Jupyter Notebook读取数据进行分析时,如下:

<ipython-input-5-9af9eaa72e92>:5: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
  users = pd.read_csv('users.dat',sep = '::',header = None,names = labels)

提示C引擎不支持正则表达式分割,需要使用Python引擎,此时只需要在读取数据文件时加入参数,engine='python'即可,如下:

users = pd.read_csv('users.dat',sep = '::',header = None,names = labels, engine='python')

此时再执行就不会再提示警告信息了。

2.使用matplotlib画图警告 RuntimeWarning: Glyph 30005 missing from current font

在使用matplotlib库进行画图时,如果标题等文字中出现中文,就可能出现警告:

E:\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:214: RuntimeWarning: Glyph 30005 missing from current font.
  font.set_text(s, 0.0, flags=flags)
E:\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:214: RuntimeWarning: Glyph 24433 missing from current font.
  font.set_text(s, 0.0, flags=flags)
E:\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:214: RuntimeWarning: Glyph 25968 missing from current font.
  font.set_text(s, 0.0, flags=flags)
E:\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:214: RuntimeWarning: Glyph 25454 missing from current font.
  font.set_text(s, 0.0, flags=flags)
E:\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:214: RuntimeWarning: Glyph 25454 missing from current font.
  font.set_text(s, 0.0, flags=flags)

意思是plt画图找不到字体,需要进行配置。

有两种方式:

  • 临时设置
    在调用画图函数前进行配置:
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False

即设置字体为微软雅黑,支持中文。

但是这只是临时设置,下一次再使用又得设置,显得很麻烦。

  • 永久配置

永久设置是编辑matplotlib的配置文件matplotlibrc,修改后以后无需再修改、一劳永逸。该文件一般位于%PythonPath%\Lib\site-packages\matplotlib\mpl-data(PythonPath即表示安装的Python路径),如果使用的是Anaconda,则是%AnacondaPath%\Lib\site-packages\matplotlib\mpl-data(AnacondaPath表示Anaconda的安装路径)。

在matplotlibrc文件中找到如下位置(定义font.family处):

2345_image_file_copy_62.jpg

修改如下:

## The font.size property is the default font size for text, given in pts.
## 10 pt is the standard value.
##
## Note that font.size controls default text sizes.  To configure
## special text sizes tick labels, axes, labels, title, etc, see the rc
## settings for axes and ticks.  Special text sizes can be defined
## relative to font.size, using the following values: xx-small, x-small,
## small, medium, large, x-large, xx-large, larger, or smaller
font.family  : monospace
font.monospace : Microsoft YaHei, SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
#font.style   : normal
#font.variant : normal
#font.weight  : normal
#font.stretch : normal
#font.size    : 10.0

主要是第10、11行,设置font.family : monospace取消#注释,添加一行font.monospace : Microsoft YaHei, SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif,Microsoft YaHei为微软雅黑、SimHei为黑体、支持中文。

然后再重启Jupyter Notebook或者重新运行代码即可显示中文,如下:

2345_image_file_copy_64.jpg

3.Pandas使用DataFrame.ix[]报错 ‘DataFrame’ object has no attribute ‘ix’

在较新版的pandas库中使用DataFrame.ix[]时,会报错如下:

AttributeError: 'DataFrame' object has no attribute 'ix'

意思是DataFrame没有ix属性,这是因为从pandas的1.0.0版本开始,移除了Series.ixDataFrame.ix,可以直接使用DataFrame.iloc[]DataFrame.loc[]代替。

4.Pandas画直方图报错’Rectangle’ object has no property ‘normed’

在使用Pandas画直方图时,如下:

values.hist(bins=100, alpha=0.3, color='k', normed=True)

5.在对数据进行groupby时警告Indexing with multiple keys

在使用groupby()方法对数据进行分组时,有时候会使用到多个列,这时候会显示警告信息:

FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.

这是因为在进行分组时使用多个列时的方式不对,为data1 = orders.groupby('付款时间')['支付金额','订单编号'].agg({'支付金额':'sum','订单编号':'count'}),显然,在[]中传入了多个参数,因此会提示警告,正确的做法是将这些列名放入一个列表,再将列表放入中括号,即为:

data1 = orders.groupby('付款时间')[['支付金额','订单编号']].agg({'支付金额':'sum','订单编号':'count'})

即使用双层中括号即可。

相关文章
|
10月前
|
运维 监控 安全
公司监控软件:SAS 数据分析引擎驱动网络异常精准检测
在数字化商业环境中,企业网络系统面临复杂威胁。SAS 数据分析引擎凭借高效处理能力,成为网络异常检测的关键技术。通过统计分析、时间序列分析等方法,SAS 帮助企业及时发现并处理异常流量,确保网络安全和业务连续性。
163 11
|
算法 数据挖掘
R语言——AVOCADO“(异常植被变化检测)算法(1990-2015数据分析)监测森林干扰和再生(含GEE影像下载代码)
R语言——AVOCADO“(异常植被变化检测)算法(1990-2015数据分析)监测森林干扰和再生(含GEE影像下载代码)
233 1
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在运行数据分析任务时,底层依赖服务alisa.olap.submitjob出现了异常,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
机器学习/深度学习 运维 算法
Python数据分析中的异常检测与处理方法
在Python数据分析中,异常数据是一个常见但又十分重要的问题。本文将介绍几种常见的异常检测与处理方法,包括基于统计学方法、机器学习方法以及深度学习方法。通过对异常数据的有效检测与处理,可以提高数据分析的准确性和可信度,从而更好地指导业务决策。
|
数据挖掘 数据处理
人人都会点数据分析 | 了解统计指标与异常值的简单处理
人人都会点数据分析 | 了解统计指标与异常值的简单处理
292 0
|
数据挖掘
数据分析|R-异常值处理
数据分析|R-异常值处理
249 0
|
运维 数据挖掘 Python
python 数据分析异常检测anomaly detection
python 数据分析异常检测anomaly detection
351 0
python 数据分析异常检测anomaly detection
|
机器学习/深度学习 运维 算法
【Python数据分析基础】: 异常值检测和处理
【Python数据分析基础】: 异常值检测和处理
【Python数据分析基础】: 异常值检测和处理
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
761 4
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
233 2

热门文章

最新文章