Как изменить форму данных

Мне нужно изменить форму данных следующим образом:

nam code date1 date2 0 a 1 1/1 1/2 1 b 3 3/4 4/5 

но df.stack кажется бесполезным в этой ситуации.

Желаемый результат:

  nam code date 0 a 1 1/1 1 a 1 1/2 2 b 3 3/4 3 b 3 4/5 

One Solution collect form web for “Как изменить форму данных”

Вы можете использовать lreshape , sort_values по столбцам nam , reindex_axis и last reset_index :

 print pd.lreshape(df, {'date': ['date1', 'date2']}) .sort_values('nam') .reindex_axis(['nam','code','date'], axis=1) .reset_index(drop=True) nam code date 0 a 1 1/1 1 a 1 1/2 2 b 3 3/4 3 b 3 4/5 

Другое решение с melt , drop для variable столбчатой ​​колонки, sort_values по столбцу nam и last reset_index :

 print pd.melt(df, id_vars=['nam','code'], value_name='date') .drop('variable', axis=1) .sort_values('nam') .reset_index(drop=True) nam code date 0 a 1 1/1 1 a 1 1/2 2 b 3 3/4 3 b 3 4/5 

РЕДАКТИРОВАТЬ:

lreshape теперь недокументирован, но возможен в будущем, удалив ( с pd.wide_to_long тоже ).

Возможное решение заключается в слиянии всех трех функций с одним – возможно, melt , но теперь оно не реализовано. Может быть, в какой-то новой версии панд. Тогда мой ответ будет обновлен.

  • разделил серию Pandas без мультииндекса
  •  
    Interesting Posts for Van-Lav

    Как выявить проклятия ALT + комбинации клавиш в python

    Prime numbers python

    Почему это происходит – RelatedObjectDoesNotExist ошибка, вызванная Model.clean ()?

    Проблемы с активацией виртуального сервера на сервере через Fabric

    Выходные шестнадцатеричные строки hmacsha1 отличаются между vb.net и python

    От шестнадцатеричного до своего дополнения в Python

    Python Mechanize – как добавить заголовок на один вызов .open ()?

    Не удается установить подушку на centos

    Python: как сравнить значения разных ключей в словаре, а затем удалить дубликаты?

    Использование геокодирования Google Maps с Python с помощью urllib2

    Запланировать повторное событие в Python 3

    Программирование Python 3.2.3 … Почти работало

    Python – ввод пользователя для имени переменной, передаваемой в качестве аргумента функции

    Как проверить код состояния HTTP объекта без его загрузки?

    Является ли порядок ключей () и значений () в словаре python гарантированным одним и тем же?

    Python - лучший язык программирования в мире.