【发布时间】:2018-03-31 15:48:36
【问题描述】:
我正在尝试通过 SQL 查询向 Pandas 提供一些数据,然后将旋转后的结果保存到 .csv 文件中。到目前为止,我已经成功了。
import cx_Oracle
import pandas as pd
query = """
SELECT
dt,
--Workstack,
GM,
COUNT(JOB_NUMBER)
FROM MY_TABLE
GROUP BY
dt,
--Workstack,
GM
"""
connection = cx_Oracle.connect("<My_Username>", "<My Password>", "<Database String>")
df = pd.read_sql_query(query, connection)
piv = df.pivot(index='GM', columns='DT', values='COUNT')
print (piv.head())
piv.to_csv('''Workstack.csv''')
现在我希望在查询变量中包含使用的字段“Workstack”,并且我还想使用 pandas 过滤具有字段 Workstack 的不同字符串,然后将它们粘贴为不同的 csv 文件或同一个 Excel 文件。但是,当我在查询中包含 Workstack 时,python 给了我这个错误......
ValueError: Index contains duplicate entries, cannot reshape
任何想法我如何解决这个问题?最终,我想使用 python Excel 模块将上述数据透视表粘贴到不同的单元格和工作表上。
谢谢:)
【问题讨论】:
-
尝试在旋转之前重置索引:df.reset_index().pivot
标签: python excel pandas pivot-table