小编Chr*_*her的帖子

在matplotlib中创建一个Diverging Stacked Bar Chart

我有一些数据列表,表明对一个(非常不满意)到五个(非常高兴)量表的回答.我想创建一个图表页面,将这些列表显示为倾斜堆叠的水平条形图.回复列表可以具有不同的大小(例如,当有人选择不回答特定问题时).以下是数据的最小示例:

likert1 = [1.0, 2.0, 1.0, 2.0, 1.0, 3.0, 3.0, 4.0, 4.0, 1.0, 1.0]
likert2 = [5.0, 4.0, 5.0, 4.0, 5.0, 3.0]
Run Code Online (Sandbox Code Playgroud)

我希望能够通过以下方式绘制:

plot_many_likerts(likert1, likert2)
Run Code Online (Sandbox Code Playgroud)

目前我已经编写了一个迭代列表的函数,并在matplotlib中的共享图上将每个函数绘制为自己的子图:

def plot_many_likerts(*lsts):
    #get the figure and the list of axes for this plot
    fig, axlst = plt.subplots(len(lsts), sharex=True)
    for i in range(len(lsts)):
        likert_horizontal_bar_list(lsts[i], axlst[i], xaxis=[1.0, 2.0, 3.0, 4.0, 5.0])
        axlst[i].axis('off')
    fig.show()

def likert_horizontal_bar_list(lst, ax, xaxis):
    cnt = Counter(lst)
    #del (cnt[None])
    i = 0
    colour_float = 0.00001
    previous_right = 0
    for key in sorted(xaxis):
        ax.barh(bottom=0, …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib

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

如何将 mysql.connection db pool 与 python flask 一起使用

我在 mysql 5.6 中使用了 Flask 10.1。我想要一个连接池,单个请求可以在其中获取连接并并行插入数据。我认为应该工作的代码是这样的:

# !flask/bin/python
from flask import Flask, jsonify, abort, make_response, request, g
import mysql.connector

app = Flask(__name__)

db_user = "user"
db_pass = "pass"
db_url = "127.0.0.1"


@app.before_first_request
def before_first_request():
    # configure the connection pool in the global object
    g.cnx_pool = mysql.connector.pooling.MySQLConnectionPool(pool_name="name",
                                                             pool_size=10,
                                                             autocommit=True,
                                                             user=db_user,
                                                             password=db_pass,
                                                             host=db_url,
                                                             database='db')

@app.route('/log', methods=['POST'])
def log_data():
    """
    Logs data
    """
    cursor = g.cnx_pool.get_connection().cursor()
    query = """INSERT INTO db.data (time,data) values (NOW(),%s)"""
    cursor.execute(query, (request.get_data(),))
    return make_response('', 200)

if __name__ == '__main__': …
Run Code Online (Sandbox Code Playgroud)

python mysql flask

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

如何处理修改大熊猫数据框

我有一个较大的熊猫数据框(磁盘上有 1.5gig .csv)。我可以将其加载到内存中并进行查询。我想创建一个新列,它是其他两列的组合值,我试过这个:

def combined(row):
    row['combined'] = row['col1'].join(str(row['col2']))
return row

df = df.apply(combined, axis=1)
Run Code Online (Sandbox Code Playgroud)

这导致我的 python 进程被杀死,大概是因为内存问题。

该问题的一个更迭代的解决方案似乎是:

df['combined'] = ''
col_pos = list(df.columns).index('combined')
crs_pos = list(df.columns).index('col1')
sub_pos = list(df.columns).index('col2')

for row_pos in range(0, len(df) - 1):
    df.iloc[row_pos, col_pos] = df.iloc[row_pos, sub_pos].join(str(df.iloc[row_pos, crs_pos]))
Run Code Online (Sandbox Code Playgroud)

这当然看起来非常 unpandas。而且速度很慢。

理想情况下,我想要类似于apply_chunk()apply 的东西,但只适用于数据框的一部分。我认为这dask可能是一个选择,但是dask当我使用数据框时,它们似乎还有其他问题。不过,这必须是一个常见问题,是否应该使用一种设计模式将列添加到大熊猫数据框?

python pandas dask

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

如何在 Kinesis 服务器端记录 IP、时间戳和用户代理

我有一个连接到 kinesis firehose 的 kinesis 数据流,该 kinesis firehose 将数据转储到 S3 中。我正在使用 javascript 客户端库aws-sdk将记录推送到数据流中(例如使用putRecords())。

有没有办法让我在服务器端记录 IP、时间戳和用户代理?更一般地说,我可以将服务器端的 http 标头放入正在摄取到 kinesis 中的记录中吗?或者我必须把所有这些都放在客户端吗?

(如果在客户端,在处理来自客户端的 IP 和时间戳时是否有任何指向最佳实践的指针,这可能不可靠?)

amazon-web-services amazon-kinesis amazon-kinesis-firehose

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

在Oracle中描述查询结果的模式?

是否有可能获得与Oracle DESCRIBE命令类似的查询结果?例如,我在几个表之间建立了一个联接,并限制了返回的列,我想将其写到文件中。稍后,我想将该文件中的值还原到另一个DBMS中自己的基表中。

我可以单独描述所有表,并手动修剪列,但是我希望DESC (select a,b from t1 join t2) as q可以使用,但不能。

如果我没有create view特权(我没有特权),则无法创建视图。没有办法直接描述查询结果吗?

sql oracle ddl describe

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