2015-09-21 2 views
4

у меня есть панд dataframe со следующими столбцами:Объединение столбцов и создать новый столбец с пандами

  1. Название
  2. Количество продаваемого продукта в Нью-Йорке (скажем, 100)
  3. Количество товара продается в Калифорнии (скажем, 50)

выглядит так:

Product  New York California 
Widget01 100   50 

Я хочу, чтобы изменить рамку, используя две колонки местоположение, чтобы создать новый столбец, как это:

Product  Location  Total Sold 
Widget01 New York  100 
Widget01 California 50 

Как достичь этого с пандами?

ответ

4

Вы можете использовать pandas.melt() -

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

Demo -

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 
+0

Я согласен с 'pd.melt', но я не понимаю ваш' value_vars'. Почему бы не просто 'pd.melt (df, id_vars =" Product ", var_name =" Location ", value_name =" Total Sold ")'? – DSM

+0

Да, вы правильно исправили это, заметили, что если он не установлен, он принимает все столбцы, не указанные как id_vars. Спасибо. –