小编nor*_*ius的帖子

Pandas read_csv dtype inference on file with many int columns,除了索引和列是字符串

我需要为我正在构建的推荐程序加载一个大的 .csv 文件(大约有 1000 万条记录)。我的输入文件如下所示(k 接近 ~400 列):

      P1    P2    ... Pk

a      1     1    ...  0
b      0     0    ...  0
c      0     0    ...  1
Run Code Online (Sandbox Code Playgroud)

我尝试通过此调用读取我的文件:

pd.read_csv(url,header=0, sep="\t",index_col=0,encoding="utf-8")
Run Code Online (Sandbox Code Playgroud)

当我阅读文件时,Pandas错误地猜测我的数据中的所有数字都是 floats。我想强制数据为“int”类型,以便在加载过程中节省内存。我尝试使用选项:dtype=int,但这发出了一个错误:

ValueError: invalid literal for int() with base 10: 'a'
Run Code Online (Sandbox Code Playgroud)

我想这是因为我的索引和列是字符串。

我知道我可以尝试使用字典来手动指定列的数据类型,但是由于我正在构建一个推荐程序,因此我事先不知道我的文件的列和索引,我想避免重新 -每次加载新文件时创建字典。

如何指定read_csv方法只在我的表的数据上设置整数类型,而不是索引和列名?

python csv types type-inference pandas

5
推荐指数
1
解决办法
2247
查看次数

如何将pandas DataFrame的列解压缩为多个变量

如果尺寸匹配,则列表或numpy数组可以解包为多个变量。对于3xN阵列,将执行以下操作:

import numpy as np 
a,b =          [[1,2,3],[4,5,6]]
a,b = np.array([[1,2,3],[4,5,6]])
# result: a=[1,2,3],   b=[4,5,6]
Run Code Online (Sandbox Code Playgroud)

如何对熊猫的柱子实现类似的行为DataFrame?扩展以上示例:

import pandas as pd 
df = pd.DataFrame([[1,2,3],[4,5,6]])
df.columns = ['A','B','C']    # Rename cols and
df.index = ['i', 'ii']        # rows for clarity
Run Code Online (Sandbox Code Playgroud)

以下内容无法正常工作:

a,b = df.T
# result: a='i',   b='ii'
a,b,c = df
# result: a='A',   b='B',   c='C'
Run Code Online (Sandbox Code Playgroud)

但是,我想得到的是以下内容:

a,b,c = unpack(df)
result: a=df['A'], b=df['B'], c=df['C']
Run Code Online (Sandbox Code Playgroud)

该功能unpack已经在熊猫中可用吗?还是可以通过简单的方式模仿它?

python syntactic-sugar pandas

5
推荐指数
1
解决办法
2706
查看次数

计算pandas数据帧选定列的加权总和的推荐方法是什么?

例如,我想为下面的矩阵计算列 'a' 和 'c' 的加权和,权重在字典中定义w

df = pd.DataFrame({'a': [1,2,3], 
                   'b': [10,20,30], 
                   'c': [100,200,300],
                   'd': [1000,2000,3000]})
w = {'a': 1000., 'c': 10.}
Run Code Online (Sandbox Code Playgroud)

我自己想出了一些选项(见下文),但看起来都有些复杂。这个基本用例没有直接的熊猫操作吗?像df.wsum(w)什么?


我试过了pd.DataFrame.dot,但它引发了一个值错误:

df.dot(pd.Series(w))
# This raises an exception:
# "ValueError: matrices are not aligned"
Run Code Online (Sandbox Code Playgroud)

可以通过为每一列指定权重来避免异常,但这不是我想要的。

w = {'a': 1000., 'b': 0., 'c': 10., 'd': 0. }
df.dot(pd.Series(w)) # This works
Run Code Online (Sandbox Code Playgroud)

如何仅计算列子集上的点积?或者,可以在应用点操作之前选择感兴趣的列,或者利用 pandas/numpynan在计算(按行)总和时忽略s的事实(见下文)。

以下是我自己发现的三种方法:

w = {'a': 1000., 'c': 10.}

# 1) Create a complete lookup W.
W = { …
Run Code Online (Sandbox Code Playgroud)

python dot-product pandas

5
推荐指数
1
解决办法
1847
查看次数

通过CMake构建的ios上Qt应用程序的运行时错误

嗨stackoverflowers :)

如果我构建一个Qt/qmake示例项目(在我的情况下是" 模拟时钟 "示例)并将其部署到运行iOS 7.1的设备上,一切顺利:应用程序在设备上执行完美.Chapeau - 来自digia的人们做了一项艰巨的工作,将ios工具链集成到他们的Qt工作流程中.

但是,如果我将qmake项目翻译成CMake项目,事情就不会那么顺利了.我已经附加了Qt-5.3.1版本的模拟时钟示例(见下文),其中我添加了一个CMakeLists.txt和一个运行CMake的脚本来生成iOS的XCode项目.该项目编译甚至链接(我不得不添加一些额外的链接库,请参阅CMake源文件).好极了.

但这是陷阱:应用程序在运行时崩溃,并显示以下错误消息:

错误:无法加载平台插件"ios"

作为线程中的注释,必须通过项目设置"强制加载"libqios.这样做并没有太多改善情况,只是将错误消息更改为:

错误:您在调用UIApplicationMain之前创建了QApplication.如果您正在编写本机iOS应用程序,并且只想将Qt用于应用程序的某些部分,那么创建QApplication的好地方是来自UIApplication委托内的"applicationDidFinishLaunching".

我有两个问题:

  • 有谁知道运行时错误的问题是什么?我知道qmake(和相应的ios mkspecs)做了很多魔术.但是如何将其转换为CMake?
  • 为什么我必须手动将几个库(harfbuzzng,qios,libpng和几个iOS框架)链接到我的目标?不应该find_package(Qt5 ...)为我做这个工作?

是包含我的Qt-CMake项目的zip文件的链接.我正在使用的Qt版本是适用于iOS的Qt-5.3.1.

编辑:我发现qmake示例如果你将其从Qt示例文件夹结构中删除,就不会像这样工作.直接查看Qt示例:path/to/Qt/examples/widgets/widgets/analogclock.

c++ qt cmake ios qt5

4
推荐指数
1
解决办法
1253
查看次数

CMake:如何规范化路径?

有没有一种强大的方法来规范化CMake中的路径?

例:

# Let's assume that an environment variable MY_ROOT_DIR is set
# that points to some directory.
set(MYFILE "$ENV{MY_ROOT_DIR}/somefile.txt")
message(${MYFILE})
# This will result for example in 
# Win:         C:\path\to\my\root\dir/somefile.txt
# Unix based:  /path/to/my/root/dir/somefile.txt
Run Code Online (Sandbox Code Playgroud)

在此示例中,在将MY_ROOT_DIR其用作路径组件之前,需要对其进行规范化(即用斜杠替换反斜杠).你会如何在CMake中做到这一点?

CMake(或工具链下方的工具)可以处理具有混合分隔符(/\)的路径,或者可以不处理.CMake /用作标准分隔符.CMake为具有错误路径分隔符的路径生成的典型警告\可能类似于:

CMake Warning (dev) at cmake_install.cmake:5 (set):
  Syntax error in cmake code at

    C:/path/to/my/root/build/cmake_install.cmake:5

  when parsing string

    C:\path\to\my\root/somefile.txt

  Invalid escape sequence \p

  Policy CMP0010 is not set: Bad variable reference syntax is an error. …
Run Code Online (Sandbox Code Playgroud)

cmake

3
推荐指数
1
解决办法
2428
查看次数

由于证书过期,MacOS 上的 pip 因 SSLError 失败 - 如何恢复?

在 MacOS (10.11.6) 上使用 pip 搜索或安装软件包时,我收到类似于下面重现的错误的 SSL 错误。

python2和python3都会出现这个问题。我通过www.python.org作为 Frameworks获得了版本(2.7.14 和 3.6.5)。pip 的版本是 9.0.1。这个问题是新的(2018 年 4 月),似乎与 OSX 的更新有关。

如何从这个问题中恢复?

$ pip2 search numpy

Exception:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip/commands/search.py", line 45, in run
    pypi_hits = self.search(query, options)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip/commands/search.py", line 62, in search
    hits = pypi.search({'name': query, 'summary': query}, 'or')
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1243, in __call__
    return self.__send(self.__name, args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xmlrpclib.py", line 1602, in __request …
Run Code Online (Sandbox Code Playgroud)

python ssl pip ssl-certificate

3
推荐指数
1
解决办法
6301
查看次数

Pandas:将多标题列的级别转换为行索引

让我们给出一个带有多级头的表:

cols = pd.MultiIndex.from_arrays([['a','a', 'b','b'], [0,1,0,1]], 
                                 names=('I','II'))
df = pd.DataFrame(np.random.rand(3,4),columns=cols)
df.index.name = 'idx' 

I          a                   b
II         0         1         0         1
idx
0    0.851031  0.294414  0.503343  0.081551
1    0.333798  0.965863  0.206981  0.898823
2    0.520647  0.868081  0.571291  0.275164
Run Code Online (Sandbox Code Playgroud)

如何将第一列索引"转动" I到行索引中?继续我的例子,我想实现以下目标:

    II          0         1 
I   idx
a   0    0.851031  0.294414  
    1    0.333798  0.965863  
    2    0.520647  0.868081  
b   0    0.503343  0.081551  
    1    0.206981  0.898823  
    2    0.571291  0.275164  
Run Code Online (Sandbox Code Playgroud)

确保柱具有适合这种操作的形状.

python pandas

2
推荐指数
1
解决办法
330
查看次数

如何在 C++ 中知道数组包含多少个元素?

例如,我有一个包含 3 个元素的数组

int array [] = {1, 4, 66};
Run Code Online (Sandbox Code Playgroud)

我怎么知道array包含多少个元素?

c++ arrays

0
推荐指数
1
解决办法
246
查看次数