我正在尝试重新排序导出到excel的列它目前是按字母顺序排列的。我要销售订单净值,帐单净值,然后打开金额?
有没有办法只为excel重命名列?
如何在底部将All重命名为Grand Total
python - 如何重新排序和重命名Pandas Pivot?-LMLPHP

def create_sheet():
    scriptfile = open('script.sql', 'r')
    script = scriptfile.read()
    df2 = pd.read_sql(script, my_connection)
    df2 = df2.where((pd.notnull(df2)), None)
    pivot = pd.pivot_table(df2,
                           index=['Customer_Name'],
                           values=[
                               'Billed_Net_Value',
                               'Sales_Order_Net_Value',
                               'Open_Amount'],
                           aggfunc=np.sum,
                           margins=True)

    writer = pd.ExcelWriter('SAP.xlsx', engine='xlsxwriter')
    pivot.to_excel(writer, sheet_name='Pivot')
    workbook = writer.book
    ws = writer.sheets['Pivot']

最佳答案

def create_sheet():
    scriptfile = open('script.sql', 'r')
    script = scriptfile.read()
    df2 = pd.read_sql(script, my_connection)
    df2 = df2.where((pd.notnull(df2)), None)
    pivot = pd.pivot_table(df2,
                           index=['Customer_Name'],
                           values=[
                               'Billed_Net_Value',
                               'Sales_Order_Net_Value',
                               'Open_Amount'],
                           aggfunc=np.sum,
                           margins=True)

    col_order = ['Sales_Order_Net_Value', 'Billed_Net_Value', 'Open_Amount']
    pivot = pivot[col_order].rename(index=dict(All='Grand Total'))

    writer = pd.ExcelWriter('SAP.xlsx', engine='xlsxwriter')
    pivot.to_excel(writer, sheet_name='Pivot')
    workbook = writer.book
    ws = writer.sheets['Pivot']

09-16 19:28