У меня есть фрейм данных, который содержит информацию по столбцам, такую как:
Month Year Cost_1 Cost_2
1 2017 100 0
2 2017 0 100
3 2017 140 30
, и я хочу транспонировать эти данные так, чтобы они приняли форму:
Month Year Cost_1 Cost_2 Type
1 2017 100 0 Cost_1
2 2017 0 100 Cost_2
3 2017 140 0 Cost_1
3 2017 0 30 Cost_2
Мой начальныйпредполагалось использовать .loc (Cost_1> 0, "Type") = "Cost_1", но это не относится к строкам, которые имеют Cost_1 и Cost_2 и нуждаются в добавлении новой строки?Должен ли я разделить данные так, чтобы они сначала имели только Cost_1 или Cost_2, а затем использовали .loc для создания столбца Type или есть более разумный способ сделать это?
Редактировать:
Проблемана самом деле сложнее, чем я думал.У каждого столбца есть связанный партнер. Cost_1 имеет Count_1, Cost_2 имеет Count_2 .. и т. Д.
Year Month BDADExclIncurred_Capped_count BDADExclIncurred_Capped_mean BDTPDIncurred_Capped_count BDTPDIncurred_Capped_mean
0 2015 5 0 NaN 60 900
1 2015 10 0 NaN 0 NaN
2 2015 12 0 NaN 0 NaN
3 2016 1 60 2000 0 NaN
4 2016 1 100 1500 20 600
Вот как выглядят мои данные раньше, многие столбцы разбиты на счетчики: средние пары, я хочу сохранить ихвместе, но если есть строка с двумя счетчиками: средние пары, я хочу, чтобы это было разбито на две строки, где каждая имеет только один соответствующий счетчик: средняя пара.Затем я хочу создать новый столбец с именем «type», который сообщит мне, что такое пара count: mean, связанная с этой строкой.
Year Month BDADExclIncurred_Capped_count BDADExclIncurred_Capped_mean BDTPDIncurred_Capped_count BDTPDIncurred_Capped_mean Type
0 2015 5 0 NaN 60 900 TPD
1 2015 10 0 NaN 0 NaN
2 2015 12 0 NaN 0 NaN
3 2016 1 60 2000 0 NaN AD
4 2016 1 100 1500 0 0 AD
5 2016 1 0 0 20 600 TPD
Как показано в этом примере, создается новая строка.Индекс 4 из предыдущего кадра данных теперь разделен на индекс 4 и индекс 5.