小编kee*_*mar的帖子

Pandas Pivot_Table:非数字值的行计算百分比

这是数据框"df"中的数据:

Document    Name    Time
SPS2315511  A   1 HOUR
SPS2315512  B   1 - 2 HOUR
SPS2315513  C   2 - 3 HOUR
SPS2315514  C   1 HOUR
SPS2315515  B   1 HOUR
SPS2315516  A   2 - 3 HOUR
SPS2315517  A   1 - 2 HOUR
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码,它给出了数据透视表中计数的摘要,

table = pivot_table(df, values=["Document"],
                    index=["Name"], columns=["Time"],
                    aggfunc=lambda x: len(x),
                    margins=True, dropna=True)
Run Code Online (Sandbox Code Playgroud)

但我想要的是在右键单击数据透视表并选择"显示值为 - >行总计百分比"时的行计算百分比.由于我的文档是非数字值,我无法得到它.

预期结果 :

Count of Document   Column Labels

Name    1 HOUR  1 - 2 HOUR  2 - 3 HOUR  Grand Total
A   33.33%  33.33%  33.33%  100.00% …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

DatabaseError:要执行的第一个参数必须是 python 中的字符串或 unicode 查询

我试图将从日期选择器中选择的日期返回到我的 python 代码中的 sql 查询中。我也尝试使用encode(utf-8)删除 unicode 字符串,但仍然收到错误。

我是Python新手。谁能帮我弄清楚如何解决这个问题吗?我正在使用 python Flask 来创建网页

if request.method=='POST':
        dateval2 = request.form['datepick']
        dateval = dateval2.encode('utf-8')
    result = ("SELECT * FROM OE_TAT where convert(date,Time_IST)='?'",dateval
    df = pd.read_sql_query(result,connection)`
Run Code Online (Sandbox Code Playgroud)

错误

pandas.io.sql.DatabaseError
DatabaseError: Execution failed on sql '("SELECT * FROM OE_TAT where convert(date,Time_IST)='?'", '2015-06-01')': The first argument to execute must be a string or unicode query.
Run Code Online (Sandbox Code Playgroud)

html sql-server flask python-2.7 pandas

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

标签 统计

pandas ×2

flask ×1

html ×1

python ×1

python-2.7 ×1

sql-server ×1