这是数据框"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 代码中的 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)