小编Ank*_*kan的帖子

Python Pandas计算和总结特定条件

是否有单个函数在pandas中执行SUMIF的等价物,它是特定条件的总和,COUNTIF是从Excel计算特定条件的值?

我知道可以使用许多多步功能

例如,sumif我可以使用(df.map(lambda x: condition), or df.size())然后使用.sum()

因为countif我可以使用(groupby functions和寻找我的答案或使用过滤器和.count())

在您输入条件和数据框并获得总和或计算结果时,是否有简单的一步过程来执行这些功能?

python sum pandas

55
推荐指数
3
解决办法
15万
查看次数

pypdf将多个pdf文件合并为一个pdf

如果我有1000多个pdf文件需要合并成一个pdf,

input = PdfFileReader()
output = PdfFileWriter()
filename0000 ----- filename 1000
    input = PdfFileReader(file(filename, "rb"))
    pageCount = input.getNumPages()
    for iPage in range(0, pageCount):
        output.addPage(input.getPage(iPage))
outputStream = file("document-output.pdf", "wb")
output.write(outputStream)
outputStream.close()
Run Code Online (Sandbox Code Playgroud)

执行上面的代码时input = PdfFileReader(file(filename500+, "rb")),

错误消息: IOError: [Errno 24] Too many open files:

我认为这是一个错误,如果没有,我该怎么办?

python pypdf

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

Python:对于每个列表元素,在列表中应用一个函数

鉴于[1,2,3,4,5],我该怎么办呢

1/1, 1/2, 1/3,1/4,1/5, ...., 3/1,3/2,3/3,3/4,3/5,.... 5/1,5/2,5/3,5/4,5/5
Run Code Online (Sandbox Code Playgroud)

我想存储所有结果,找到最小值,并返回用于找到最小值的两个数字.所以在我上面描述的情况下,我想回来(1,5).

所以基本上我想做点什么

每个元素i列表中的映射跨所有元素一些功能列表中,以ij作为参数结果存储在主列表,发现在主列表中的最小值,并返回参数i,j用于计算该最小值.

在我真正的问题中,我有一个列表对象/坐标,我使用的函数采用两个坐标并计算欧氏距离.我试图找到任意两点之间的最小欧氏距离,但我不需要花哨的算法.

python algorithm list-comprehension list

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

Django Aggreagtion:仅返回值?

我有一个已支付的价值清单,并希望显示已支付的总金额.我使用Aggregation和Sum来一起计算值.问题是,我只想要打印出总值,但是聚合打印出:( {'amount__sum': 480.0}480.0是总增加值.

在我看来,我有:

    from django.db.models import Sum

    total_paid = Payment.objects.all.aggregate(Sum('amount'))
Run Code Online (Sandbox Code Playgroud)

为了显示页面上的值,我有一个mako模板,其中包含以下内容:

    <p><strong>Total Paid:</strong> ${total_paid}</p>
Run Code Online (Sandbox Code Playgroud)

如何让它显示480.0而不是{'amount__sum': 480.0}

python django sum aggregation

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

使用xlrd从excel表读取时间,时间格式而不是浮点数

我试图从excel文件中读取一些数据.其中一列的时间值格式为HH:MM:SS.Xlrd读取此时间并将其转换为float.我在我的python文件中有另一个时间值,我想与excel导入的时间值进行比较.只要其中一个是"时间"而另一个是"浮动",我就无法做到这一点.有什么建议?

这就是我的excel文件的样子 -

Time    L_6_1   PW_6_1  Tc_6_1  Te_6_1

0:00:00 10000   500 290 270
1:00:00 10000   600 290 270
2:00:00 10000   700 290 270
3:00:00 10000   800 290 270
4:00:00 10000   900 290 270
Run Code Online (Sandbox Code Playgroud)

这就是我读这些数据的方式 -

wb=xlrd.open_workbook('datasheet.xls')
sh = wb.sheet_by_index(0)
timerange=sh.col_values(0)
print timerange
Run Code Online (Sandbox Code Playgroud)

这是具有时间浮点值的输出 -

[u'Time', 0.0, 0.041666666666666664, 0.083333333333333301, 0.125, 0.166666666666
66699, 0.20833333333333301, 0.25, 0.29166666666666702, 0.33333333333333298, 0.37
5, 0.41666666666666702, 0.45833333333333298, 0.5, 0.54166666666666696, 0.5833333
3333333304, 0.625, 0.66666666666666696, 0.70833333333333304, 0.75, 0.79166666666
666696, 0.83333333333333304, 0.875, 0.91666666666666696, 0.95833333333333304]
Run Code Online (Sandbox Code Playgroud)

python floating-point datetime xlrd

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

如何返回字典| 蟒蛇

我有一个.txt文件,其中包含以下行:

23;Pablo;SanJose
45;Rose;Makati
Run Code Online (Sandbox Code Playgroud)

我有这个程序:

file = open("C:/Users/renato/Desktop/HTML Files/myfile2.txt")

def query(id):
    for line in file:
        table = {}
        (table["ID"],table["name"],table["city"]) = line.split(";")
        if id == int(table["ID"]):
             file.close()
             return table
        else:
             file.close()
             return {}

id = int(input("Enter the ID of the user: "))
table2 = query(id)
print("ID: "+table2["ID"])
print("Name: "+table2["name"])
print("City: "+table2["city"])
Run Code Online (Sandbox Code Playgroud)

所以正在发生的事情(据我所知)是:

文件打开table创建一个调用的哈希,文件的每一行被分成3个键/值.如果id用户输入的内容与键的值匹配ID,则关闭文件并返回整个哈希值.

然后,我table2table哈希上分配值,我正在尝试打印它中的值.

当我运行它时,我得到以下内容:

   Traceback (most recent call last):
   File "C:/Users/renato/Desktop/HTML Files/Python/hash2.py", line 17, in <module>
    print("ID: "+table2["ID"])
    KeyError: 'ID'
Run Code Online (Sandbox Code Playgroud)

似乎它没有识别var …

python python-3.x

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

超过 32 个维度的 numpy ndarray

当我尝试创建一个超过 32 维的 numpy 数组时,出现错误:

import numpy as np

np.ndarray([1] * 33)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-2-78103e601d91> in <module>()
----> 1 np.ndarray([1] * 33)

ValueError: sequence too large; cannot be greater than 32
Run Code Online (Sandbox Code Playgroud)

我发现了这一点:使用大量维度的 numpy.array 与这个问题相关,但我想在不构建我自己的版本的情况下做到这一点。

我的用例:
我正在使用联合概率分布,我试图在轴上表示每个变量,以便对其的计算(边缘化、减少)是单行操作。例如,对于边缘化操作,我可以简单地对该变量的轴进行求和。对于乘法,我可以简单地做一个简单的 numpy 乘法(在检查轴是否相同之后)。

有没有可能的解决方法?

python numpy python-2.x multidimensional-array python-3.x

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

创建适合Python和Java的配置文件的"标准"方法

我的应用程序是100%用纯Python开发的.我发现使用.py扩展创建配置文件非常有用且容易,而不是简单地在每个代码中加载它.像这样的东西:

ENV = 'Dev'
def get_settings():
    return eval(ENV)

class Dev():
    ''' Development Settings '''

    # AWS settings
    aws_key = 'xxxxxxxxxxxxx'
    aws_secret = 'xxxxxxxxxxxxxxxxx'

    # S3 settings
    s3_bucket = 'xxxxxxxxxx'
    ...
    ...
Run Code Online (Sandbox Code Playgroud)

而且在我的代码中我只导入此文件并使用设置,这样我就有一个易于管理的文件,其中包含我需要的所有参数.

最近我不得不将部分代码移到Java上.而现在我正在努力配置.

题:

创建可以从两种语言轻松访问的配置的"标准"方法是什么?(我的Java技能非常有限,如果你能用Java给我一个简单的例子那就太棒了)

python java config

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

为Scrapy安装包依赖项

因此,在用户需要为Scrapy安装的许多软件包中,我认为我遇到了pyOpenSSL问题.

当我尝试创建一个教程Scrapy项目时,我得到以下输出:

Traceback (most recent call last):
  File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "C:\Python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 168, in <module>
    execute()
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 122, in execute
    cmds = _get_commands_dict(settings, inproject)
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 46, in _get_comma
nds_dict
    cmds = _get_commands_from_module('scrapy.commands', inproject)
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 29, in _get_comma
nds_from_module
    for cmd in _iter_command_classes(module):
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 20, in _iter_comm
and_classes
    for module in walk_modules(module_name):
  File "C:\Python27\lib\site-packages\scrapy\utils\misc.py", line …
Run Code Online (Sandbox Code Playgroud)

python windows pyopenssl scrapy python-2.7

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

isinstance函数的奇怪行为

我有一个名为类Factor模块中Factor.py(https://github.com/pgmpy/pgmpy/blob/dev/pgmpy/factors/Factor.py),也有功能命名factor_productFactor.py为:

def factor_product(*args):
    if not all(isinstance(phi, Factor) for phi in args):
            raise TypeError("Input parameters must be factors")
    return functools.reduce(lambda phi1, phi2: _bivar_factor_operation(phi1, phi2,     
                                                            operation='M'), args)
Run Code Online (Sandbox Code Playgroud)

现在,如果我甚至将实例传递Factor给函数,它仍会抛出TypeError.来自调试器的几行,断点设置在if语句之上:

(Pdb) args
args = (<pgmpy.factors.Factor.Factor object at 0x7fed0faf76a0>, <pgmpy.factors.Factor.Factor object at 0x7fed0faf7da0>)

(Pdb) isinstance(args[0], Factor)
False

(Pdb) type(args[0])
<class 'pgmpy.factors.Factor.Factor'>

(Pdb) Factor
<class 'pgmpy.factors.Factor.Factor'>
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

python isinstance python-3.x

6
推荐指数
1
解决办法
251
查看次数