小编Abe*_*Abe的帖子

numpy:数组中唯一值的最有效频率计数

numpy/中scipy,是否有一种有效的方法来获取数组中唯一值的频率计数?

这些方面的东西:

x = array( [1,1,1,2,2,2,5,25,1,1] )
y = freq_count( x )
print y

>> [[1, 5], [2,3], [5,1], [25,1]]
Run Code Online (Sandbox Code Playgroud)

(对你来说,R用户在那里,我基本上都在寻找这个table()功能)

python arrays performance numpy

210
推荐指数
10
解决办法
24万
查看次数

python pandas:删除列A的重复项,保持列B中具有最高值的行

我在A列中有一个重复值的数据框.我想删除重复项,保留B列中具有最高值的行.

所以这:

A B
1 10
1 20
2 30
2 40
3 10
Run Code Online (Sandbox Code Playgroud)

应该变成这样:

A B
1 20
2 40
3 10
Run Code Online (Sandbox Code Playgroud)

Wes添加了一些很好的功能来删除重复项:http://wesmckinney.com/blog/?p = 340 .但是AFAICT,它是专为完全重复而设计的,所以没有提到选择保留哪些行的标准.

我猜这可能是一种简单的方法 - 可能就像在删除重复项之前对数据帧进行排序一样简单 - 但我不知道groupby的内部逻辑是否足够清楚.有什么建议?

python duplicates pandas

117
推荐指数
7
解决办法
13万
查看次数

python pandas:将一个带参数的函数应用于一个系列

我想在python pandas中为一个系列应用带参数的函数:

x = my_series.apply(my_function, more_arguments_1)
y = my_series.apply(my_function, more_arguments_2)
...
Run Code Online (Sandbox Code Playgroud)

文档描述了对apply方法的支持,但它不接受任何参数.是否有接受参数的不同方法?或者,我错过了一个简单的解决方法吗?

更新(2017年10月): 请注意,由于此问题最初被要求apply()已更新pandas 以处理位置和关键字参数,上面的文档链接现在反映了这一点并显示了如何包含任一类型的参数.

python apply pandas

114
推荐指数
4
解决办法
14万
查看次数

单个变量的频率表

今天最后一个新手大熊猫问题:如何为单个系列生成一个表?

例如:

my_series = pandas.Series([1,2,2,3,3,3])
pandas.magical_frequency_function( my_series )

>> {
     1 : 1,
     2 : 2, 
     3 : 3
   }
Run Code Online (Sandbox Code Playgroud)

很多谷歌搜索让我进入了Series.describe()和pandas.crosstabs,但这些都不是我需要的:一个变量,按类别计算.哦,如果它适用于不同的数据类型会很好:字符串,整数等.

python statistics frequency pandas

91
推荐指数
3
解决办法
11万
查看次数

python argh/argparse:如何将列表作为命令行参数传递?

我正在尝试使用argh库将参数列表传递给python脚本.可以采取以下输入的东西:

./my_script.py my-func --argA blah --argB 1 2 3 4
./my_script.py my-func --argA blah --argB 1
./my_script.py my-func --argA blah --argB 
Run Code Online (Sandbox Code Playgroud)

我的内部代码如下所示:

import argh

@argh.arg('--argA', default="bleh", help='My first arg')
@argh.arg('--argB', default=[], help='A list-type arg--except it\'s not!')
def my_func(args):
    "A function that does something"

    print args.argA
    print args.argB

    for b in args.argB:
        print int(b)*int(b)  #Print the square of each number in the list
    print sum([int(b) for b in args.argB])  #Print the sum of the list

p = argh.ArghParser()
p.add_commands([my_func])
p.dispatch()
Run Code Online (Sandbox Code Playgroud)

这是它的行为方式: …

python command-line-arguments argparse argh

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

MongoDB:如何更新数组中的单个子元素,由数组中的索引引用?

我正在尝试更新mongodb文档中数组中包含的单个子元素.我想使用其数组索引引用该字段(数组中的元素没有任何我可以保证将是唯一标识符的字段).看起来这应该很容易,但我无法弄清楚语法.

这是我想在伪json中做的事情.

之前:

{
  _id : ...,
  other_stuff ... ,
  my_array : [
    { ... old content A ... },
    { ... old content B ... },
    { ... old content C ... }
  ]
}
Run Code Online (Sandbox Code Playgroud)

后:

{
  _id : ...,
  other_stuff ... ,
  my_array : [
    { ... old content A ... },
    { ... NEW content B ... },
    { ... old content C ... }
  ]
}
Run Code Online (Sandbox Code Playgroud)

好像查询应该是这样的:

//pseudocode
db.my_collection.update(
  {_id: ObjectId(document_id), my_array.1 : 1 },
  {my_array.$.content: …
Run Code Online (Sandbox Code Playgroud)

arrays mongodb

64
推荐指数
8
解决办法
5万
查看次数

更改twitter bootstrap模式中的背景颜色?

在twitter bootstrap中创建模态时,有没有办法改变背景颜色?完全删除阴影?

注意:要删除着色,这不起作用,因为它还会更改单击行为.(我仍然希望能够在模态外单击以关闭它.)

$("#myModal").modal({
  backdrop: false
});
Run Code Online (Sandbox Code Playgroud)

twitter-bootstrap

50
推荐指数
4
解决办法
13万
查看次数

scrapy:当蜘蛛退出时调用一个函数

有没有办法在Spider类终止之前触发它?

我可以自己终止蜘蛛,像这样:

class MySpider(CrawlSpider):
    #Config stuff goes here...

    def quit(self):
        #Do some stuff...
        raise CloseSpider('MySpider is quitting now.')

    def my_parser(self, response):
        if termination_condition:
            self.quit()

        #Parsing stuff goes here...
Run Code Online (Sandbox Code Playgroud)

但我找不到任何关于如何确定蜘蛛何时会自然戒烟的信息.

python scrapy

41
推荐指数
5
解决办法
2万
查看次数

大熊猫在重复DataFrame.reset_index()时崩溃

这里非常奇怪的错误:我正在使用pandas来合并多个数据帧.作为合并的一部分,我必须多次调用reset_index.但是当我这样做时,它会在第二次或第三次使用reset_index时意外崩溃.

这是重现错误的最小代码:

import pandas
A = pandas.DataFrame({
    'val' :  ['aaaaa', 'acaca', 'ddddd', 'zzzzz'],
    'extra' : range(10,14),
})
A = A.reset_index()
A = A.reset_index()
A = A.reset_index()
Run Code Online (Sandbox Code Playgroud)

这是追溯的相关部分:

....
    A = A.reset_index()
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 2393, in reset_index
    new_obj.insert(0, name, _maybe_cast(self.index.values))
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 1787, in insert
    self._data.insert(loc, column, value)
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 893, in insert
    raise Exception('cannot insert %s, already exists' % item)
Exception: cannot insert level_0, already exists
Run Code Online (Sandbox Code Playgroud)

知道这里出了什么问题吗?我该如何解决?

python pandas

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

如何在terraform中创建SSH密钥?

我需要为不同的用户启动一堆EC2盒子.每个用户都应该从所有其他用户沙箱中进行,因此每个EC2框都需要自己的SSH密钥.

在terraform中实现这一目标的最佳方法是什么?

我发现的几乎所有说明都要我手动创建SSH密钥并将其粘贴到terraform脚本中.

(坏)示例:

由于我需要以编程方式为许多用户生成唯一键,因此这是不切实际的.

这似乎不是一个困难的用例,但我无法在任何地方找到它的文档.

在紧要关头,我可以使用bash生成terraform脚本并动态注入SSH密钥.但这似乎就像terraform首先应该做的那样.

amazon-web-services terraform

31
推荐指数
4
解决办法
2万
查看次数