【问题标题】:Reshaping Dataframe with multiple column and row headings, and duplicate column names使用多个列和行标题以及重复的列名重塑 Dataframe
【发布时间】:2023-02-09 05:57:01
【问题描述】:

关于 Python Pandas DataFrame 重塑的一个问题:

我目前有以下结构的数据:

我想将其转换为以下结构:

有人可以协助完成这项工作吗?

我几乎在 A 点和 B 点之间的每一步都在苦苦挣扎。一个简单的转置(即“df.T”)不能完成给定多个标题的工作,以及奇怪地放置在数据结构中的日期没有一个标签。 Pandas 也不喜欢有多个同名的“列”,因此它只会占用数据集的一部分。正如您从图像中看到的那样,预期的输出被展平,然后按客户、产品和日期排序。我已经尝试过枢轴、重新索引、轴调整,但没有运气(可能 b/c 我很烂)。

此示例数据应有助于重新创建我附加的数据输入图像:

d = {'Client': ['','client1','client2', 'client2'], 
     'ProductType': ['','Tools','Tools', 'Tools'],
     'Product': ['','Hammer', 'Hammer','Drill'],
     'Qty': ['1/1/2022','200', '250','100'],
     'Margin': ['1/1/2022','2', '2.50','1'],
     'Price': ['1/1/2022','21', '26','11'],
     'Qty': ['1/2/2022','205', '259','119'],
     'Margin': ['1/2/2022','2', '2.50','1'],
     'Price': ['1/2/2022','21', '26','11']}

有人可以提供帮助吗?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    如果日期是原始框架的一列,您可以获得所需的结果。创建数据透视表时将其放入索引中就足够了

    dp = df.pivot_table(index=['Date', 'client'...etc], ...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 2023-03-14
      • 2019-06-12
      • 1970-01-01
      • 2021-10-02
      • 2015-06-18
      相关资源
      最近更新 更多