小编Mic*_*l K的帖子

格式化pandas整数以供显示

我已经看到了对大熊猫中显示的格式浮点数字,但我有兴趣做同样的事情为整数.

现在,我有

pd.options.display.float_format = '{:,.2f}'.format
Run Code Online (Sandbox Code Playgroud)

这对我的数据中的浮点数很有用,但是要么会在转换为浮点数的整数上留下恼人的尾随零,要么我将使用不用逗号格式化的普通整数.

大熊猫文档提到了一个SeriesFormatter我无法找到任何信息的课程.

或者,如果有一种方法可以编写单个字符串格式化程序,它将浮点数格式化为'{:,.2f}'浮点数并且尾随小数为零'{:,d}',那也可以.

python pandas

18
推荐指数
3
解决办法
8762
查看次数

Heroku Flask Tutorial Procfile含义

在heroku 教程中,有一段代码

hello.py

import os
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello World!'
Run Code Online (Sandbox Code Playgroud)

和一个Procfile:

web: gunicorn hello:app --log-file=-

真正令人困惑的hello:app部分是部分; 确实hello引用了hello()函数或hello.py脚本?根据其含义,整个Procfile语句的含义是什么?

python heroku flask

15
推荐指数
2
解决办法
7233
查看次数

pandas DataFrame在布尔掩码上设置值

我正在尝试在pandas DataFrame中设置许多不同的值,以达到相同的值.我以为我理解了pandas的布尔索引,但是我没有找到关于这个特定错误的任何资源.

import pandas as pd 
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'f']})
mask = df.isin([1, 3, 12, 'a'])
df[mask] = 30
Traceback (most recent call last):
...
TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value
Run Code Online (Sandbox Code Playgroud)

上面,我想用值替换True掩码中的所有条目30.

我可以做df.replace,但掩盖在这里感觉更有效和直观.有人可以解释错误,并提供设置所有值的有效方法吗?

python pandas

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

美化 Jinja2 模板

我有一个想要使用的 Jinja2模板,但不能与美化代码结合使用。之前有人问过这个问题,但在将近 2 年的时间里没有答案,所以现在也许有答案了。

<select id="example-getting-started" name="test" multiple="multiple">
   {% for k in pizza_dict %}
      <option value="{{ k }}" {% if pizza_dict[k] %}selected{% endif %}>{{ k }}</option>
   {% endfor %}
</select>
Run Code Online (Sandbox Code Playgroud)

BeautifulSoup 和 lxml 会将这段代码“美化”为:

<select id="example-getting-started" multiple="multiple" name="test"> 
{% for k in pizza_dict %} 
    <option endif="" if="" pizza_dict="" value="{{ k }}"> {{ k }} </option> 
{% endfor %} </select>
Run Code Online (Sandbox Code Playgroud)

这将破坏代码的功能。

html python jinja2

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

从numpy数组创建pydicom文件

我正在尝试从标准尺寸(512 x 512或256 x 256)的numpy阵列创建一个新的dicom图像.看起来这应该是直截了当的,我已经调整了我的代码来自http://code.google.com/p/pydicom/source/browse/source/dicom/examples/write_new.py,它似乎执行相同的进程,但是当我保存文件时,我无法在RadiAnt或MicroDicom中查看它.

import dicom, dicom.UID
from dicom.dataset import Dataset, FileDataset

def write_dicom(pixel_array,filename):

    file_meta = Dataset()
    ds = FileDataset(filename, {},file_meta = file_meta,preamble="\0"*128)
    ds.PixelData = pixel_array.tostring()
    ds.save_as(filename)
    return

if __name__ == "__main__":
    import numpy as np
    pixel_array = np.tile(np.arange(256).reshape(16,16), (16,16)) * 4
    write_dicom(pixel_array,'pretty.dcm')
Run Code Online (Sandbox Code Playgroud)

python dicom pydicom

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

如何简化形状中的边界几何

我正在使用GIS进行匀称工作,但是在将每个邮政编码的几何图形加载到内存时遇到了内存错误,因为几何图形参差不齐且非常复杂。

我想通过减少边界点的数量到尽可能少而又不会使形状过度失真的方式来减小形状。使用凸包似乎是一个潜在的答案,因为可以简单地从边界上扔掉很多点。我想知道是否已经有解决该问题的东西。

python gis shapely

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

项目除了列之外

有没有办法使用一组列的补充itemgetter

例如,您可以使用获取列表的第一,第三和第五个元素

from operator import itemgetter
f = itemgetter(0, 2, 4)
f(['a', 'b', 'c', 'd', 'e']) ## == ('a', 'c', 'e')
Run Code Online (Sandbox Code Playgroud)

除了第一个,第三个和第五个之外,是否有(简单且高效)的方法来获取所有元素?

python

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

是否可以将多个 map 和 reduce 函数组合到 Scala 中的单个通道中?

我有多个地图函数在相同的数据上运行,我想让它们一次运行。我正在寻找一种通用的方法来做到这一点。

val fruits: Seq[String] = Seq("apple", "banana", "cherry")

def mapF(s: String): Char = s.head
def reduceF(c1: Char, c2: Char): Char = if(c1 > c2) c1 else c2

def mapG(s: String): Int = s.length
def reduceG(i1: Int, i2: Int): Int = i1 + i2

val largestStartingChar = fruits.map(mapF).reduce(reduceF)
val totalStringLength = fruits.map(mapG).reduce(reduceG)
Run Code Online (Sandbox Code Playgroud)

我想减少通过的次数fruits。我可以使这两个地图通用,并像这样减少:

def productMapFunction[A, B, C](f: A=>B, g: A=>C): A => (B, C) = {
  x => (f(x), g(x))
}

def productReduceFunction[T, U](f: (T, T)=>T, g: (U, U) …
Run Code Online (Sandbox Code Playgroud)

generics functional-programming scala

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

IPython并行计算命名空间问题

我一直在阅读和重新阅读IPython文档/教程,我无法弄清楚这段特殊代码的问题.看起来这个函数dimensionless_run对于传递给每个引擎的命名空间是不可见的,但我很困惑,因为函数是在__main__全局命名空间中定义的,并且清晰可见.

wrapper.py:

import math, os

def dimensionless_run(inputs):
    output_file = open(inputs['fn'],'w')
    ...
    return output_stats

def parallel_run(inputs):
    import math, os  ## Removing this line causes a NameError: global name 'math'
                     ## is not defined.
    folder = inputs['folder']
    zfill_amt = int(math.floor(math.log10(inputs['num_iters'])))
    for i in range(inputs['num_iters']):
        run_num_str = str(i).zfill(zfill_amt)
        if not os.path.exists(folder + '/'):
            os.mkdir(folder)
        dimensionless_run(inputs)
    return

if __name__ == "__main__":
    inputs = [input1,input2,...]
    client = Client()
    lbview = client.load_balanced_view()
    lbview.block = True
    for x in sorted(globals().items()):
        print x
    lbview.map(parallel_run,inputs) …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing ipython nameerror

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

Python设置构造函数语法

有谁知道这个令人困惑的集合构造语法的理由?我花了一天时间找不到这个bug,因为我在构建一个集时错过了一个逗号.

> {1 2} 
SyntaxError: invalid syntax  # This makes sense.
> {'a' 'b'} = set(['ab'])    # This does not.
Run Code Online (Sandbox Code Playgroud)

python

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