我有一些数据列表,表明对一个(非常不满意)到五个(非常高兴)量表的回答.我想创建一个图表页面,将这些列表显示为倾斜堆叠的水平条形图.回复列表可以具有不同的大小(例如,当有人选择不回答特定问题时).以下是数据的最小示例:
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) 我在 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) 我有一个较大的熊猫数据框(磁盘上有 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当我使用数据框时,它们似乎还有其他问题。不过,这必须是一个常见问题,是否应该使用一种设计模式将列添加到大熊猫数据框?
我有一个连接到 kinesis firehose 的 kinesis 数据流,该 kinesis firehose 将数据转储到 S3 中。我正在使用 javascript 客户端库aws-sdk将记录推送到数据流中(例如使用putRecords())。
有没有办法让我在服务器端记录 IP、时间戳和用户代理?更一般地说,我可以将服务器端的 http 标头放入正在摄取到 kinesis 中的记录中吗?或者我必须把所有这些都放在客户端吗?
(如果在客户端,在处理来自客户端的 IP 和时间戳时是否有任何指向最佳实践的指针,这可能不可靠?)
是否有可能获得与Oracle DESCRIBE命令类似的查询结果?例如,我在几个表之间建立了一个联接,并限制了返回的列,我想将其写到文件中。稍后,我想将该文件中的值还原到另一个DBMS中自己的基表中。
我可以单独描述所有表,并手动修剪列,但是我希望DESC (select a,b from t1 join t2) as q可以使用,但不能。
如果我没有create view特权(我没有特权),则无法创建视图。没有办法直接描述查询结果吗?