【问题标题】:How do I select an excel Column based on the column heading value in Python如何根据Python中的列标题值选择excel列
【发布时间】:2021-09-01 16:07:40
【问题描述】:

我有一个 python 数据框,我使用以下代码将其粘贴到 Excel 工作表中:

df.to_excel(writer, columns = [Weeknum, Weeknum1, Weeknum2], sheet_name = 'QTY SLS', startrow = 5, startcol = 8, header = False, index = False)

在数据框 weeknum、Weeknum1 和 Weeknum2 中选择的列是代码中较早的输入(例如 Weeknum = 第 14 周)。所以这些可能是 ['Week 16', 'Week 15', 'Week 14'] 例如。我的问题是如何根据 Weeknum 输入选择起始列。所以我粘贴到的 Excel 工作表如下所示:

Store Week 10 Week 11 Week 12 Week 13 Week 14 Week 15 Week 16
A 1 4 4 2 1 5 4

因此,如果我将 Startcol 的代码放入输入中,则需要从第 14 周开始;如果将其放入输入中,则需要从第 10 周开始。

希望这是有道理的。

【问题讨论】:

    标签: python excel dataframe export-to-excel pandas.excelwriter


    【解决方案1】:

    你可以像这样找到开始列:

    import pandas as pd
    
    # Toy dataframe
    df = pd.DataFrame(
        {
            "Week 1": [1, 1, 1],
            "Week 2": [2, 2, 2],
            "Week 3": [3, 7, 3],
            "Week 4": [4, 8, 4],
            "Week 5": [7, 2, 9],
        }
    )
    
    Weeknum = "Week 3"  # Position in the df header index == 2
    Weeknum1 = "Week 4"
    Weeknum2 = "Week 5"
    
    # Get the position of df column with value of Weeknum
    print(list(df.columns).index(Weeknum))
    # Outputs 2
    

    因此,您可以像这样修改您的代码:

    df.to_excel(
        writer,
        columns=[Weeknum, Weeknum1, Weeknum2],
        sheet_name="QTY SLS",
        startrow=5,
        startcol=list(df.columns).index(Weeknum),
        header=False,
        index=False,
    )
    

    【讨论】:

    • 非常棒,完美运行。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多