Categories
数据分析

Spyder (以及其他PyQt程序) 无法使用 fcitx 输入法输入中文的解决办法

最近在Ubuntu 18.04 LTS上安装了 Spyder 4,并将输入法由系统默认的ibus换为了Fcitx+搜狗拼音,其他程序都正常输入,但无法在Spyder中使用 Fcitx 输入中文。我的Spyder是通过pip命令安装的。 经过研究,找到原因是,Spyder 是使用 PyQt5 作为 GUI 的抽象层,而PyQT5中默认没有加入fcitx的输入插件,只有ibus的: $ ls /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/plugins/platforminputcontexts/ libcomposeplatforminputcontextplugin.so libibusplatforminputcontextplugin.so 因此,解决办法为,在PyQt5中为 fcitx 输入的动态链接库创建软链接(或者复制,但软链接更好): $ sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /usr/local/lib/python3.6/dist-packages/PyQt5/Qt/plugins/platforminputcontexts/ 进行如上设置后,不用重新登录,只需要重新启动 Spyder 应用程序即可看到能正常使用 fcitx 输入中文了。

Categories
数据分析

Spyder 4.0 要来了,Python的数据分析 集成开发环境,全新中文界面!

Categories
数据分析

在python中使用pandas将SAS数据集 (.sas7bdat) 转换为dataframe, excel或csv格式

pandas 是 python 中强大的数据分析库。从 pandas 0.18 版本开始,已经原生支持SAS sas7bdat数据集的导入。导入后,您可以根据需要将其再导出为excel或csv等其他格式。 用法: import pandas as pd sas7bdat_file = “/path/to/sample.sas7bdat” df = pd.read_sas(sas7bdat_file) # 得到的是一个标准的 pandas.dataframe 对象 df.head() # 显示前面几行 df.tail() # 显示结尾几行 df.to_csv(“/path/to/sample.csv”) 注意: 1. 如果您的pandas版本早于0.18,则只能借助于pipy上的sas7bdat库进行导入。因此,最省心的方式是将pandas升级到最新版本。 2. 如果您的pands版本早于0.22,则在导入sas7bdat数据集时,非MMDDYY格式的日期会被作为数值导入,因此导入后日期会相差21916天,这是一个bug,参见我的另一篇早期博文:如何将sas中以整数表示的日期转换为excel日期.  从0.22版本开始,该bug已被修复,几乎所有的日期格式均能被正确地导入。因此,最省心的做法是将您的pandas升级到最新版本。 如果您的 pandas 版本低于当前 PyPi 上的最新版本,建议您立即更新。更新方法: # 列出过时的软件包: pip3 list –outdated # 更新 pandas: pip3 install -U pandas  

Categories
数据分析

进入 SAS University Edition 内部一探究竟

SAS University Edition 采用了虚拟化技术,提供virtualbox和vmware镜像供用户使用,运行时客户机内部在Centos 操作系统之上 (笔者的版本运行的是Centos 6.8 Final) 运行着SAS各个组件以及Apache web服务器、mysql数据库等,宿主机通过将10080端口转发到客户机的80端口进行通信,所有SAS编程任务均在网页中完成。这与将SAS安装到本地服务器然后运行是一样的,只不过用户表面上无法查看或更改其服务器配置。 但是,虚拟机镜像其实是虚拟的磁盘文件,文件系统格式为linux ext4, 因此,将SAS University Edition vmdk磁盘文件添加到一个空的虚拟机,然后使用任何linux发行版的iso启动即可挂载它(或者现有的linux虚拟机中挂载)。 见图: 2020-03-16 更新:我已经成功获取了 SAS University Edition 的超级管理员 root 权限,从而能够完全控制该虚拟机中的系统,见图: 技术细节可留言私下探讨。

Categories
数据分析

在Python中使用SAX方式处理XML文件的简单例子

初识python的SAX,摸索出了如下示例,与大家分享。

Categories
反倾销反补贴 数据分析

在 Python 中计算两组数据的 Cohen’s D 效应值

在美国的反倾销调查中,美国商务部使用SAS软件进行倾销幅度的计算。在Differential Price Analysis(目标倾销分析)过程中,DOC使用Cohen’s D统计方法,来测试应诉企业的美国销售价格是否在不同的季度、不同的区域/州、以及不同的客户之间具有明显差异。 以下代码显示了如何在Python中如何Cohen’s D 的计算:

Categories
数据分析

使用python语言进行全年一次性奖金个人所得税计算以及临界值分析

按照税务局的规定,员工的全年一次性奖金每年可享受一次按照除以12的商数确定税率计算个人所得税的优惠算法。网上又有人说该算法下存在个人所得税的盲区,在该盲区内多发1元奖金将会使交的税比增加的奖金还多。 为了验证该说法,我曾尝试在LibreOffice中用电子表格下公式进行计算,但是由于公式复杂且数据量大,很难完成。最终发现使用python配合pandas库可以非常快速地完成计算。

Categories
数据分析

在Python中实现SAS的PROC MEANS功能

在SAS中,使用PROC MEANS过程配合WEIGHT和OUTPUT等语句可以很方便地计算不同组合下的N, SUMWGT, SUM, MEAN, MIN, MAX, STD等统计量。Python是免费开源的编程语言,配合pandas库可以完成很多的统计计算和科学数据分析工作。 那么,python中有没有类似的代码来完成SAS中的PROC MEANS任务呢?参考Stack Overflow上的一篇问答帖子,我测试并重新整理成了以下完整的代码以及用法示例。

Categories
数据分析

如何将sas中以整数表示的日期转换为excel日期

2018-02-22 更新:在新版本的 pandas 中,这个问题已经不存在,所有日期格式均可以无损地识别。详见我的另一篇博文:在python中使用pandas将SAS数据集 (.sas7bdat) 转换为dataframe, excel或csv格式 SAS中以整数表示的是日期和时间与excel中的日期和时间是不同的,使用python的sas7bdat包将sas数据集转换为Pandas Dataframe或导出为csv格式后在,得到的日期会不正确。 如何在python中将sas日期转换为excel日期呢?请看下面的代码: