小编shx*_*hx2的帖子

如何将数据从mongodb导入到熊猫?

我在mongodb的集合中有大量数据需要分析.如何将数据导入熊猫?

我是熊猫和numpy的新手.

编辑:mongodb集合包含标记有日期和时间的传感器值.传感器值为float数据类型.

样本数据:

{
"_cls" : "SensorReport",
"_id" : ObjectId("515a963b78f6a035d9fa531b"),
"_types" : [
    "SensorReport"
],
"Readings" : [
    {
        "a" : 0.958069536790466,
        "_types" : [
            "Reading"
        ],
        "ReadingUpdatedDate" : ISODate("2013-04-02T08:26:35.297Z"),
        "b" : 6.296118156595,
        "_cls" : "Reading"
    },
    {
        "a" : 0.95574014778624,
        "_types" : [
            "Reading"
        ],
        "ReadingUpdatedDate" : ISODate("2013-04-02T08:27:09.963Z"),
        "b" : 6.29651468650064,
        "_cls" : "Reading"
    },
    {
        "a" : 0.953648289182713,
        "_types" : [
            "Reading"
        ],
        "ReadingUpdatedDate" : ISODate("2013-04-02T08:27:37.545Z"),
        "b" : 7.29679823731148,
        "_cls" : "Reading"
    },
    {
        "a" : 0.955931884300997, …
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo pandas

84
推荐指数
9
解决办法
7万
查看次数

MongoDB锁定写入的级别是多少?(或:"每个连接"是什么意思

在mongodb文档中,它说:

从2.2版本开始,MongoDB在每个数据库的基础上实现了大多数读写操作的锁.一些全局操作(通常是涉及多个数据库的短期操作)仍然需要全局"实例"广泛锁定.在2.2之前,每个mongod实例只有一个"全局"锁.

这是否意味着在我拥有3个与mongodb:// localhost/test的连接的情况下来自网络上运行的不同应用程序 - 一次只能写一个?或者只是每个连接?

IOW:它是每个连接,还是整个/测试数据库在写入时被锁定?

concurrency locking mongodb

58
推荐指数
4
解决办法
5万
查看次数

python中一行lambda函数中的条件语句?

如果以前曾经问过这个问题,我会道歉,但我无法在任何地方看到它.

基本上我遇到过一个场景,我需要在lambda函数中使用if语句.困难之处在于理想情况下它需要在一行代码中(如果可能的话甚至可能?)

通常,我会这样写:

T = 250

if (T > 200):
    rate = 200*exp(-T)
else:
    rate = 400*exp(-T)

return (rate)
Run Code Online (Sandbox Code Playgroud)

但是我需要它看起来像这样:

rate = lambda(T) : if (T>200): return(200*exp(-T)); else: return(400*exp(-T))
Run Code Online (Sandbox Code Playgroud)

我意识到更容易做的事情是在lambda函数之外做出决策,然后为每个case都有一个单独的lambda函数,但它不适合这里.lambda函数存储在一个数组中,并在需要时访问,每个数组元素对应一个特定的"速率",因此对于相同的"速率"有两个单独的行会弄乱.任何帮助将不胜感激,或如果它不可能,其他人的一些确认将是不错的:)

python lambda if-statement ternary-operator conditional-operator

57
推荐指数
5
解决办法
11万
查看次数

python/zip:如果提供文件的绝对路径,如何消除zip存档中的绝对路径?

我在两个不同的目录中有两个文件,一个是'/home/test/first/first.pdf',另一个是'/home/text/second/second.pdf'.我使用以下代码来压缩它们:

import zipfile, StringIO
buffer = StringIO.StringIO()
first_path = '/home/test/first/first.pdf'
second_path = '/home/text/second/second.pdf'
zip = zipfile.ZipFile(buffer, 'w')
zip.write(first_path)
zip.write(second_path)
zip.close()
Run Code Online (Sandbox Code Playgroud)

我打开我创建的zip文件后,我有一个home在它的文件夹,然后有两个子文件夹在里面,firstsecond,则PDF文件.我不知道如何只包含两个pdf文件,而不是将完整路径压缩到zip存档中.我希望我的问题清楚,请帮忙.谢谢.

python zip absolute-path zipfile

53
推荐指数
4
解决办法
3万
查看次数

功能内部功能 - 每次?

我们有这个代码:

def big_function():
    def little_function():
         .......
    .........
Run Code Online (Sandbox Code Playgroud)

Python文档说明了def声明:

函数定义是可执行语句.它的执行绑定了函数名...

所以,问题是:def little_function()每次big_function调用时都会执行吗?问题是关于def陈述的确切,而不是little_function()身体.

python performance closures nested-function

27
推荐指数
2
解决办法
658
查看次数

在python中将Unicode数据转换为int

我从url传递的值为:

user_data = {}
if (request.args.get('title')) :
    user_data['title'] =request.args.get('title')
if(request.args.get('limit')) :
    user_data['limit'] =    request.args.get('limit')
Run Code Online (Sandbox Code Playgroud)

然后用它作为

if 'limit' in user_data :
    limit = user_data['limit']
conditions['id'] = {'id':1}
int(limit)
print type(limit)
data = db.entry.find(conditions).limit(limit)
Run Code Online (Sandbox Code Playgroud)

它打印: <type 'unicode'>

但我不断收到typelimitunicode,从查询产生一个错误!我正在将unicode转换为int,但为什么不转换?请帮忙!!!

python unicode casting python-2.7

27
推荐指数
2
解决办法
10万
查看次数

初始化和填充numpy数组的最佳方法?

我想初始化并填充一个numpy数组.什么是最好的方法?

这符合我的预期:

>>> import numpy as np
>>> np.empty(3)
array([ -1.28822975e-231,  -1.73060252e-077,   2.23946712e-314])
Run Code Online (Sandbox Code Playgroud)

但这不是:

>>> np.empty(3).fill(np.nan)
>>> 
Run Code Online (Sandbox Code Playgroud)

没有?

>>> type(np.empty(3))
<type 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)

在我看来,np.empty()调用返回正确类型的对象,所以我不明白为什么.fill()不工作?

分配np.empty()第一个工作结果正常:

>>> a = np.empty(3)
>>> a.fill(np.nan)
>>> a
array([ nan,  nan,  nan])
Run Code Online (Sandbox Code Playgroud)

为什么我需要分配给变量才能使用np.fill()?我错过了一个更好的选择吗?

python arrays numpy initialization multidimensional-array

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

Python中的动态继承

假设我有两个不同的类实现

class ParentA:
    def initialize(self):
        pass

    def some_event(self):
        pass

    def order(self, value):
        # handle order in some way for Parent A


class ParentB:
    def initialize(self):
        pass

    def some_event(self):
        pass

    def order(self, value):
        # handle order in another for Parent B
Run Code Online (Sandbox Code Playgroud)

我怎样才能动态地让一些第三类继承ParentAParentB基于这样的东西?

class MyCode:
    def initialize(self):
        self.initial_value = 1

    def some_event(self):
        # handle event
        order(self.initial_value)


# let MyCode inherit from ParentA and run
run(my_code, ParentA)
Run Code Online (Sandbox Code Playgroud)

python inheritance

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

覆盖__dir__方法的正确方法是什么?

这个问题意味着更多的是__dir__关于numpy.

我有一个子类numpy.recarray(在python 2.7,numpy 1.6.2),我注意到在对象recarray时没有列出字段名称dir(因此ipython的自动完成功能不起作用).

试图修复它,我尝试覆盖__dir__我的子类,像这样:

def __dir__(self):
    return sorted(set(
               super(MyRecArray, self).__dir__() + \
               self.__dict__.keys() + self.dtype.fields.keys()))
Run Code Online (Sandbox Code Playgroud)

结果是:AttributeError: 'super' object has no attribute '__dir__'.(我发现这里实际上应该在python 3.3中工作......)

作为解决方法,我试过:

def __dir__(self):
    return sorted(set(
                dir(type(self)) + \
                self.__dict__.keys() + self.dtype.fields.keys()))
Run Code Online (Sandbox Code Playgroud)

据我所知,这个有用,但当然不是那么优雅.

问题:

  1. 在我的情况下,后一种解决方案是否正确,即对于子类recarray
  2. 有没有办法让它在一般情况下有效?在我看来,它不适用于多重继承(打破super-call链),当然,对于没有__dict__...的对象
  3. 你知道为什么recarray不支持列出其字段名称开头?仅仅是疏忽?

python inheritance introspection python-2.7

25
推荐指数
2
解决办法
5918
查看次数

Numpy随机选择元组

我无法创建随机选择数组,其中选择是一个元组.

我收到错误: a must be 1-dimensional

这是一个例子:

choices = ((0,0,0),(255,255,255))
numpy.random.choice(choices,4)
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以做到这一点?

预期结果:

一个numpy数组,由从选择元组中随机选取的4个元素组成.

((0,0,0),(0,0,0),(255,255,255),(255,255,255))
Run Code Online (Sandbox Code Playgroud)

python random numpy

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