Windows下PythonQt3.2使用pandas.pivot_table
本机环境
1、win7 64 旗舰版
2、Qt 5.9.1(MSVC 2015,32 bit)
3、Python 3.7.1 (32-bit),二进制包安装的,即Windows x86 executable installer
4、PythonQt 3.2 使用上面的环境,源码编译
5、2018年10月26日
前叙
1、为什么没有全部使用vs2015编译python。就是官方建议的pythonQt和python的编译器保持一致,实际编译中python的库编译成功了,但应该是环境问题,和官方的安装包比不是很一样。并且vs2015只能支持编译Python3.6及以下版本。
2、为什么没有使用Anaconda进行管理。本文中使用pandas包,先前打算使用Pythoner都说pip怎么怎么麻烦,推荐的Anaconda进行包的管理,经过摸索发现,Anaconda里面包含了Python,根本不需要先安装Python,Anaconda都会内置一个Python(这个python才拥有各种包的环境),并且Anaconda不是每个python都有一个版本的。
Anaconda3-5.3.0-Windows-x86——内置python-3.7.0
Anaconda3-5.2.0-Windows-x86——内置python-3.6.5
我在编译PythonQt3.2时,设置了Anaconda中python库的位置,编译完全没有问题,但运行实例时,报错(具体错误忘记),但是使用对应版本的Python二进制安装包安装,然后编译PythonQt3.2运行实例,则正常,也就是说PythonQt3.2无法使用Anaconda提供的python库。——有解决方法,欢迎各位指正
安装pandas
通过参考资料,因为国内被墙,pip使用国内镜像源,安装pandas,还好pip会自己安装pandas依赖的包。CMD中运行:
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
此时配置Pycharm,可以看到已安装的包,其实也可以从pycharm中安装包,就是下图右侧稍微偏上的+ - 号那里

测试代码:
要注意PythonQt3.2中import pandas会报没有模块,但是在cmd中可以。根据参考资料,包含路径即可解决,本人也尝试将这个路径加入环境变量Path,但不好用。怎么查看三方包site-packages的目录,见下图:


源码:
from PythonQt.QtGui import *
import sys
# To use site-packages
sys.path.append('C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\Lib\\site-packages') from collections import OrderedDict
from pandas import DataFrame
import pandas as pd
import numpy as np
import datetime
df = pd.DataFrame({'A': ['one', 'one', 'two', 'three'] * ,
'B': ['A', 'B', 'C'] * ,
'C': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * ,
'D': ['甲', '乙', '丙'] * ,
'E': [datetime.datetime(, i, ) for i in range(, )] +
[datetime.datetime(, i, ) for i in range(, )]})
print(df)
p = pd.pivot_table(df,index=['A', 'B'], columns=['C','D'],aggfunc='count',fill_value='',margins=True)
print(p)
运行结果:
A B C D E
one A foo 甲 --
one B foo 乙 --
two C foo 丙 --
three A bar 甲 --
one B bar 乙 --
one C bar 丙 --
two A foo 甲 --
three B foo 乙 --
one C foo 丙 --
one A bar 甲 --
two B bar 乙 --
three C bar 丙 --
one A foo 甲 --
one B foo 乙 --
two C foo 丙 --
three A bar 甲 --
one B bar 乙 --
one C bar 丙 --
two A foo 甲 --
three B foo 乙 --
one C foo 丙 --
one A bar 甲 --
two B bar 乙 --
three C bar 丙 --
E
C bar foo All
D 丙 乙 甲 丙 乙 甲
A B
one A
B
C
three A
B
C
two A
B
C
All
后记:
PythonQt3.2中import pandas报没有模块,但是在cmd中可以,模块路径也在path中。是因为PythonQt初始化时
修改
PythonQt::init(PythonQt::IgnoreSiteModule | PythonQt::RedirectStdOut);
====>
PythonQt::init( PythonQt::RedirectStdOut);
参考资料
更换pip源到国内镜像 https://blog.csdn.net/chenghuikai/article/details/55258957
在Qt(C++)中与Python混合编程 https://www.cnblogs.com/xia-weiwen/p/7932379.html
Pycharm和Anaconda中如何安装package https://blog.csdn.net/chaowanghn/article/details/54017331
Windows下PythonQt3.2使用pandas.pivot_table的更多相关文章
- windows下数据挖掘相关包numpy、pandas的安装
安装Anaconda的绕道 这里介绍如何在windows下安装numpy/scipy/matplotlib/pandas/scikit_learn等数据分析相关包 相关环境: win7 64位 pyt ...
- windows下如何安装Python、pandas
windows下如何安装Python.pandas 本篇主要涵盖以下三部分内容: Python.Pycharm的安装 使用Pycharm创建.运行Python程序 安装pandas 1.Python. ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- 在windows下python,pip,numpy,scipy,matplotlib的安装
系统:win7(64bit) 如果只需要安装python,执行步骤一就可以了,不用管后面.如果还需要其它的库,则只需要执行第二步,第一步可省略(因为在安装anaconda的时间,python就自动装好 ...
- Windows下python的配置
Windows下python的配置 希望这是最后一次写关于python的配置博客了,已经被python的安装烦的不行了.一开始我希望安装python.手动配置pip并使用pip安装numpy,然而发现 ...
- windows下用pycharm安装tensorflow简易教程
https://blog.csdn.net/heros_never_die/article/details/79760616 最近开始学习深度学习的相关知识,准备实战一下,看了一些关于tensorfl ...
- [转]Windows下Python多版本共存
https://blog.csdn.net/dream_an/article/details/51248736 Windows下Python多版本共存 Python数据科学安装Numby,pandas ...
- windows下python环境安装
虽然是windows下安装的方式,但是linux也差不多哈: 1,首先安装python 这个是菜鸟教程的安装介绍页面,其实很清晰了:http://www.runoob.com/python3/pyth ...
- Windows下搭建Python虚拟环境
一.安装使用 virtualenv 1. 安装 virtualenv pip install virtualenv 2. 新建虚拟环境 virtualenv env1 用 Python3 创建虚拟环境 ...
随机推荐
- Nginx源码结构及如何处理请求
一.源码结构 1:下载安装包后,解压,可以看到目录结构,其中src目录下放的是源码 2:src源码目录下,可以看到这几个目录 mail:mail目录中存放了实现Nginx服务器 ...
- MongoDB基础知识(二)
一.基本概念 1:文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行 2:集合(collection)可以看做是一个拥有动态模式(dynamic schem ...
- bananapi+OLED做的一个打地鼠游戏,c语言编程
说明一下:BPI是对拍死的BPI的计数,对应最终的成绩RANK是难度 数值越低难度越高 每当打死10个BPI以后就会减一即难度高一级 默认初始化RANK等于15 DIE是存在的BPI数量,一旦数量大于 ...
- mysql大表设计以及优化
MYSQL千万级数据量的优化方法积累https://m.toutiao.com/group/6583260372269007374/?iid=6583260372269007374 MySQL 千万级 ...
- __slots__用法
class Test(object): __slots__ = ("name","age") t = Test() t.name = "老王" ...
- 纯CSS制作图形效果
下面所有的例子都是在demo.html的基础上添加相关样式实现的. <!DOCTYPE html> <html> <head> <meta charset=& ...
- 搭建sparksql的hive测试环境
sbt依赖 name := "Pi" version := "1.0" scalaVersion := "2.10.6" libraryDe ...
- 1DAY centos 7.4 u盘安装、网络安装
0xff01 重庆大学开源下载centos 1.下载地址 http://mirrors.cqu.edu.cn/CentOS/7.4.1708/isos/x86_64/ 选择 CentOS-7-x86 ...
- 红外NEC协议
注意: 用示波器在接收头抓的电平看起来和NEC协议刚好相反, 那是因为:HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平. 具体情况,具体分析. ...
- for each in for in 与for of
for each in for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分. 这将意味着存在各种浏览器的兼容性问题.for ...