小编ARF*_*ARF的帖子

Pandas unstack问题:ValueError:索引包含重复的条目,无法重构

我试图用大熊猫取消堆叠多索引,我一直在得到:

ValueError: Index contains duplicate entries, cannot reshape
Run Code Online (Sandbox Code Playgroud)

给定一个包含四列的数据集:

  • id(字符串)
  • 日期(字符串)
  • 位置(字符串)
  • 价值(浮动)

我首先设置了一个三级多指标:

In [37]: e.set_index(['id', 'date', 'location'], inplace=True)

In [38]: e
Out[38]: 
                                    value
id           date       location       
id1          2014-12-12 loc1        16.86
             2014-12-11 loc1        17.18
             2014-12-10 loc1        17.03
             2014-12-09 loc1        17.28
Run Code Online (Sandbox Code Playgroud)

然后我尝试取消堆叠位置:

In [39]: e.unstack('location')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-39-bc1e237a0ed7> in <module>()
----> 1 e.unstack('location')
...
C:\Anaconda\envs\sandbox\lib\site-packages\pandas\core\reshape.pyc in _make_selectors(self)
    143 
    144         if mask.sum() < len(self.index):
--> 145             raise ValueError('Index contains duplicate entries, '
    146                              'cannot reshape')
    147 …
Run Code Online (Sandbox Code Playgroud)

python pandas

51
推荐指数
3
解决办法
6万
查看次数

为什么读取一个字节比从文件读取2,3,4,...字节慢20倍?

我一直在试图理解之间的权衡readseek.对于小的"跳跃",读取不需要的数据比跳过它更快seek.

而定时不同的读/求块大小找到引爆点,我碰到一个奇特的现象:read(1)比慢约20倍read(2),read(3)等等.这种效应对于不同读取方法,例如,相同的read()readinto().

为什么会这样?

搜索以下第2/3行的时间结果:

2 x buffered 1 byte readinto bytearray
Run Code Online (Sandbox Code Playgroud)

环境:

Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  5 2016, 11:45:57) [MSC v.1900 32 bit (Intel)]
Run Code Online (Sandbox Code Playgroud)

时间结果:

Non-cachable binary data ingestion (file object blk_size = 8192):
- 2 x buffered 0 byte readinto bytearray:
      robust mean: 6.01 µs +/- 377 ns
      min: 3.59 µs
- Buffered 0 byte seek followed by 0 byte …
Run Code Online (Sandbox Code Playgroud)

python io benchmarking file

33
推荐指数
1
解决办法
893
查看次数

Bazaar版本控制的状态是什么?

我希望启动一个带有分布式源代码控制的项目,并正在评估不同的选项.看着Bazaar,我偶然发现了几篇文章(例如本文),发展速度明显放缓.

项目集市的现状如何?错误得到修复吗?

version-control dvcs bazaar

18
推荐指数
1
解决办法
3604
查看次数

如何使len()在不同的类实例上使用不同的方法,而不修改类?

有没有办法在len()不修改类的情况下使用实例方法?

我的问题的例子:

>>> class A(object):
...     pass
...
>>> a = A()
>>> a.__len__ = lambda: 2
>>> a.__len__()
2
>>> len(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'A' has no len()
Run Code Online (Sandbox Code Playgroud)

注意:

  • 不同的实例A__len__附加不同的方法
  • 我不能改变班级 A

python instance-methods

18
推荐指数
4
解决办法
1439
查看次数

gevent:产生大量greenlets的缺点?

继续我在评论中回答问题"Gevent pool with nested web requests"的问题:

假设一个人有大量任务,使用gevent.spawn(...)同时生成所有任务是否有任何缺点,而不是使用gevent池和pool.spawn(...)来限制并发数量greenlets?

表达方式不同:即使不是要解决的问题不需要,使用gevent.Pool"限制并发"是否有任何优势?

知道什么会构成这个问题的"大数"吗?

python limit spawning gevent

16
推荐指数
2
解决办法
7705
查看次数

Visual Studio 2017 构建工具是否仍然可供下载?

我正在寻找 Visual Studio 2017 构建工具。它们还在某处可用吗?

我可以找到20152019版本。2017 版本似乎无法找到。

由于工具链的限制,很遗憾我无法使用 2019 版本安装 MSVC141。

visual-studio visual-studio-2017-build-tools

12
推荐指数
3
解决办法
2万
查看次数

用于简单类序列化的C++/sqlite包装器?

我正在寻找一个OO sqlite C++包装器,它允许类的透明序列化和反序列化.

我想到的工作流程如下:

  1. 使用数据成员定义类记录
  2. 将此类提供给创建合适表的包装器

通过<<和>>对整个类进行简单的序列化和反序列化.

这是现实的还是我必须自己编写运算符?理想情况下,我不想担心数据如何进入数据库以及如何存储...易用性是我主要关注的问题,而不是灵活性或性能.

我正在寻找GAE数据存储区python接口的东西.

非常感谢,Arik

c++ sqlite serialization deserialization

8
推荐指数
1
解决办法
3498
查看次数

pydata blaze:是否允许并行处理?

我希望并行化numpy或pandas操作.为此,我一直在研究pydata的火焰.我的理解是无缝的并行化是它的主要卖点.

不幸的是,我无法找到在多个核心上运行的操作.火焰中的并行处理是否可用或目前只是一个既定的目标?难道我做错了什么?我正在使用大火v0.6.5.

我希望并行化的一个函数的示例:( pytables列的重复数据删除太大而不适合内存)

import pandas as pd
import blaze as bz
def f1():
    counter = 0
    groups = pd.DataFrame(columns=['name'])
    t = bz.TableSymbol('t', '{name: string}')
    e = bz.distinct(t)
    for chunk in store.select('my_names', columns=['name'],
                              chunksize=1e5):
        counter += 1
        print('processing chunk %d' % counter)
        groups = pd.concat([groups, chunk])
        groups = bz.compute(e, groups)
Run Code Online (Sandbox Code Playgroud)

编辑1

我跟随Phillip的例子有问题:

In [1]: from blaze import Data, compute

In [2]: d = Data('test.bcolz')

In [3]: d.head(5)
Out[3]: <repr(<blaze.expr.collections.Head at 0x7b5e300>) failed: NotImplementedError: Don't know how to compute: …
Run Code Online (Sandbox Code Playgroud)

python numpy multiprocessing pandas blaze

8
推荐指数
1
解决办法
918
查看次数

cython.parallel:如何初始化线程局部的ndarray缓冲区?

我正在努力初始化线程局部的ndarrays cython.parallel:

伪代码:

cdef:
    ndarray buffer

with nogil, parallel():
    buffer = np.empty(...)

    for i in prange(n):
        with gil:
            print "Thread %d: data address: 0x%x" % (threadid(), <uintptr_t>buffer.data)

        some_func(buffer.data)  # use thread-local buffer

cdef void some_func(char * buffer_ptr) nogil:
    (... works on buffer contents...)
Run Code Online (Sandbox Code Playgroud)

我的问题是,所有线程都buffer.data指向同一个地址.即最后分配的线程的地址buffer.

尽管bufferparallel()(或者prange)块中被赋值,但是cython不会创建buffer一个private或线程局部变量,而是将其保存为shared变量.

结果,buffer.data指向相同的内存区域对我的算法造成了严重破坏.

这不仅仅是ndarray对象的问题,而是看似所有已cdef class定义的对象.

我该如何解决这个问题?

multithreading numpy openmp cython

7
推荐指数
1
解决办法
1178
查看次数

AttributeErrors:@property 和 __getattr__ 之间出现不需要的交互

AttributeErrors我在@property与 python 结合使用时遇到了一个问题__getattr__()

示例代码:

>>> def deeply_nested_factory_fn():
...     a = 2
...     return a.invalid_attr
...
>>> class Test(object):
...     def __getattr__(self, name):
...         if name == 'abc':
...             return 'abc'
...         raise AttributeError("'Test' object has no attribute '%s'" % name)
...     @property
...     def my_prop(self):
...         return deeply_nested_factory_fn()
...
>>> test = Test()
>>> test.my_prop
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in __getattr__
AttributeError: 'Test' object …
Run Code Online (Sandbox Code Playgroud)

python properties attributeerror getattr

7
推荐指数
1
解决办法
1081
查看次数