您的位置:首页 > 其它

ArcGIS Pro 1.4 Pandas包导入的一个Bug修复全过程

2017-03-06 12:51 387 查看
Pandas——熊猫包是Python里面一个超级神器,特别对于熟悉R语言的同学(比如虾神我这种),对pandas里面的DataFrame那是犹如他乡遇故知般的热泪盈眶啊。

而且Pandas在大数据处理领域,号称所有包里面的的No.1,因为它的存在,GB级上亿条的数据可以直接使用单机完成,具体可以查看下面文章:

《用Python Pandas处理亿级数据》
http://python.jobbole.com/84118/

这个包不但强大,而且还挺复杂,虽然网上各种流传啥《十分钟搞定Pandas》类似的文章,但是下面是Pandas的官方文档,Look:



1937页的官方文档……打印出来砸死人妥妥没问题。

难怪会出现各种简化教程的,否则啃官方文档都能把人撑死。

正因为这个神器包如此的流弊,所以虾神习惯了在任何Python的环境下都把它安装好,用起来。这段时间正好在弄公司要求推广的ArcGIS新的桌面客户端软件ArcGIS Pro,所以顺手也准备在Pro里面用起来(至于Pro是啥,大家有兴趣去网上找找资料,简单来说这个软件有如下优点:

1、64位客户端(专门为了灭ArcMap的32位的)

2、二三维一体化。

3、强大的本地、网络一体化资源利用。

4、帅……好吧,这一条就够了。

最后,Pro用的Python是3.5的版本……意味中Python中文编码再也不是问题了。

放张图片出来:



但是我在Pro中使用Pandas的时候,突然出了这样一个问题:



我去……这一刻,虾神的表情这样的:



embedded null byte……嵌入了空的字节是什么鬼……

回头检查了一下报错的Python源文件calencar.py,这是一个设置返回时间的文件,然后看看报错的语句:funcs(self.format)……

瞬间就恍然大悟了。



这是因为中文版操作系统中时间格式设置的问题,ArcGIS Pro读取系统的时间设置,燃鹅,Python用的是默认的设置,这样就起了冲突了,所以如果先运行一下语句:

#把Python的本地格式设为英文模式

import locale

locale.setlocale(locale.LC_ALL,'en')

再导入pandas的话:



就木有问题了。

为了方便,可以把这句话加入到报错的py文件中:

在D:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\calendar.py

前面那一段,是你ArcGIS Pro安装的位置,自己找,后面是要修改的文件

在头部加入以下代码:
_locale.setlocale(_locale.LC_ALL, 'en')

如下所示:



加入完成保存,重启ArcGIS Pro,在导入pandas的时候,就木问题了:

下面测试一下:



打完收工。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: