小编tsc*_*chm的帖子

Pandas Dataframe显示在网页上

我正在使用Flask,但这可能适用于许多类似的框架.

我构建了一个pandas Dataframe,例如

@app.route('/analysis/<filename>')
def analysis(filename):
    x = pd.DataFrame(np.random.randn(20, 5))
    return render_template("analysis.html", name=filename, data=x)
Run Code Online (Sandbox Code Playgroud)

模板analysis.html看起来像

{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{data}}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

这可行,但输出看起来很糟糕.它不使用换行等,我已经打了data.to_html()和data.to_string() 什么是显示一帧的最简单的方法?

python flask pandas

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

用sqlalchemy,mysql和pandas读取框架

我正在尝试连接到mysql数据库,与选项1一起正常工作:

from sqlalchemy import create_engine
engine = create_engine('mysql://root:root@localhost/lend', echo=True)
cnx = engine.connect()
x = cnx.execute("SELECT * FROM user")
Run Code Online (Sandbox Code Playgroud)

但在这里打破:

from pandas.io import sql
xx = sql.read_frame("SELECT * FROM user", cnx)
cnx.close()
Run Code Online (Sandbox Code Playgroud)

同

AttributeError:'Connection'对象没有属性'rollback'

mysql sqlalchemy pandas

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

熊猫系列到json和后面

我将一个简单的Pandas系列转换为json字符串并返回时遇到了一些问题.这是我的尝试

import pandas as pd
f = pd.Series(data=[1.0,2.0,3.0],index=[10,20,30])
x = f.to_json()
a = pd.read_json(x)
Run Code Online (Sandbox Code Playgroud)

这会导致ValueError:如果使用所有标量值,则必须传递索引.

json String x看起来像{"10":1.0,"20":2.0,"30":3.0}

这里缺少什么.请帮忙

python json pandas

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

熊猫DateOffset,退后一天

我试着理解为什么

print(pd.Timestamp("2015-01-01") - pd.DateOffset(day=1))
Run Code Online (Sandbox Code Playgroud)

不会导致

pd.Timestamp("2014-12-31")
Run Code Online (Sandbox Code Playgroud)

我正在使用Pandas 0.18.我在CET时区内跑.

date pandas

8
推荐指数
2
解决办法
7759
查看次数

使用jquery和flask发送数组数据

我需要将数据从html页面发送回我的Python应用程序:

$.post("/test", {x: [1.0,2.0,3.0], y: [2.0, 3.0, 1.0]}, function(dat) {console.log(dat);});
Run Code Online (Sandbox Code Playgroud)

在服务器上:

@app.route('/test', methods=['POST'])
def test():
    print request.form.keys()
    print dir(request.form)
    print request.form["x[]"]
    return jsonify({"Mean": 10.0})
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是钥匙

['y[]', 'x[]']
Run Code Online (Sandbox Code Playgroud)

和

print request.form["x[]"] 
Run Code Online (Sandbox Code Playgroud)

结果1.

这样做的正确方法是什么?

jquery flask

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

通过 GridFS 将大型 DataFrame 写入 MongoDB

我处理包含数字和文本的大型数据帧。显然我可以将每列/行存储为一个 sep。我的 mongoDB 中的文档,但我想在加载数据时删除和麻烦。

我考虑过使用 GridFS,它是通过使用 MongoEngine FileField 进行抽象的。与此同时,我想出了一个适合我的解决方案:

import pandas as pd
from mongoengine import Document, StringField, FileField

from io import BytesIO


class Frame(Document):
    name = StringField(required=True, max_length=200, unique=True)
    data = FileField()

    @property
    def frame(self):
        str_data = BytesIO(self.data.read()).read().decode()

        try:
            return pd.read_json(str_data, typ="frame")
        except ValueError:
            return pd.read_json(str_data, typ="series")

    def __str__(self):
        return "{name}: \n{frame}".format(name=self.name, frame=self.frame)

    def put(self, frame):
        if self.data:
            self.data.replace(frame.to_json().encode())
        else:
            self.data.new_file()
            self.data.write(frame.to_json().encode())
            self.data.close()

        self.save()


if __name__ == '__main__':
    from pydata.config import connect_production

    connect_production()
    frame = pd.DataFrame(data=[[1,2,4],[3,4,6]], columns=["A","B","C"], index=["X","Y"])

    f …
Run Code Online (Sandbox Code Playgroud)

mongodb gridfs mongoengine python-3.x pandas

5
推荐指数
0
解决办法
612
查看次数

在Github上托管ipython笔记本

我维护一个Github存储库,目前有两个ipython笔记本文件.我的存储库在这里:

https://github.com/tschm/MosekRegression

当我尝试使用nbviewer打开这些文件时,例如使用

nbviewer.ipython.org

和插入

http://nbviewer.ipython.org/urls/github.com/tschm/MosekRegression/blob/master/Data.ipynb

我得到400 Bad Request Error.当我将其作为Gist提供时,该文件很好用.第一项研究似乎表明这是一个许可问题?我打赌我在这里做些蠢事......

非常感谢

托马斯

gist github ipython-notebook

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

熊猫系列从字典

这是我的数据片段.我想将这个字典转换为带有多索引的系列.这似乎方面似乎有效,但系列中的所有值都是NaN?

d = {(datetime.date(2017, 10, 19), 1026972): 24.91, (datetime.date(2017, 10, 19), 1026973): 10.68, (datetime.date(2017, 10, 19), 1026974): 654.7}
Run Code Online (Sandbox Code Playgroud)

我试过了 pd.Series(d)

有什么提示吗?

pandas

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

Numpy为什么在这个cython例程中胜过3倍

我刚开始尝试使用cython,作为第一个练习,我创建了一个函数的以下(重新)实现来计算数组中每个元素的sin.所以这是我的sin.pyx

from numpy cimport ndarray, float64_t
import numpy as np

cdef extern from "math.h":
    double sin(double x)

def sin_array(ndarray[float64_t, ndim=1] arr):
    cdef int n = len(arr)
    cdef ndarray h = np.zeros(n, dtype=np.float64)
    for i in range(n):
        h[i] = sin(arr[i])
    return h
Run Code Online (Sandbox Code Playgroud)

我还为此创建了以下setup.py

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

import numpy

ext = Extension("sin", sources=["sin.pyx"])

setup(ext_modules=[ext],
      cmdclass={"build_ext": build_ext},
      include_dirs=[numpy.get_include()])
Run Code Online (Sandbox Code Playgroud)

所以这会创建我的*.so文件.我将其导入python并创建1000个随机数,例如

import sin
import numpy as np

x = np.random.randn(1000)

%timeit sin.sin_array(x)
%timeit np.sin(x)
Run Code Online (Sandbox Code Playgroud)

Numpy赢了3倍.为什么?我认为对输入数组的类型和维度做出非常明确的假设的函数在这里可以更具竞争力.当然,我也明白numpy是不可思议的聪明,但很有可能我在这里做了一些愚蠢的事......

请注意,本练习的目的是不重写更快的sin函数,而是为我们的一些内部工具创建一些cython包装器,但这是以后的另一个问题......

python numpy cython

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

散景,酒吧和折线图的组合

我试图在散景中的条形图上绘制一条线.我试过了:

p1 = figure()...

p1.renderer.append(Bar(...))
p1.renderer.append(Line(...))

show(p1)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我没有运气.

bokeh

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