合并列并使用pandas创建新列

时间:2015-09-21 16:40:14

标签: python pandas

我有一个包含以下列的pandas数据框:

  1. 产品名称
  2. 在纽约销售的产品数量(假设为100)
  3. 在加利福尼亚州销售的产品数量(假设为50)
  4. 看起来像这样:

    Product     New York    California
    Widget01    100         50
    

    我想使用两个位置列重新构建框架,以创建一个新列,如下所示:

    Product     Location      Total Sold
    Widget01    New York      100
    Widget01    California    50
    

    如何用熊猫实现这一目标?

1 个答案:

答案 0 :(得分:5)

您可以使用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