我有一个带有以下列的 Pandas 数据框:

  • 产品名称
  • 纽约的产品销售数量(假设为100)
  • 在加利福尼亚销售的产品数量(假设为50)

  • 看起来像这样:
    Product     New York    California
    Widget01    100         50
    

    我想使用两个位置列来重塑框架,以创建一个像这样的新列:
    Product     Location      Total Sold
    Widget01    New York      100
    Widget01    California    50
    

    用 Pandas 如何做到这一点?

    最佳答案

    您可以使用 pandas.melt() -

    pd.melt(df,id_vars='Product', var_name='Location',value_name='Total Sold')
    

    演示-
    In [72]: df
    Out[72]:
        Product  New York  California
    0  Widget01       100          50
    
    In [73]: pd.melt(df,id_vars='Product', var_name='Location',value_name='Total Sold')
    Out[73]:
        Product    Location  Total Sold
    0  Widget01    New York         100
    1  Widget01  California          50
    

    10-06 15:50