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

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

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 без мультииндекса
  • Numpy - нарезание 2d строк или столбцов из массива
  • Редактировать многоформатные форматы длинного формата с помощью Pandas
  • загрузить csv в 2D-матрицу с numpy для построения графика
  • Переиндексация и наполнение значений NaN в Пандах
  • Расширенные возможности Python pandas
  • Изменение формы numpy.array в Fortran-смежном порядке
  •  
    Interesting Posts for Van-Lav

    Несколько отрицательных утверждений lookbehind в регулярном выражении python?

    Как безопасно использовать pip (с SSL) в Ubuntu Trusty?

    Подсчет количества побед для команд во вложенном списке

    API безопасного сайта. Определите, имеет ли сайт взрослое, мошенничество или вредоносный контент.

    Требуются ли uWSGI и Nginx для работы с флеш-приложением?

    Обработка быстрых результатов в Numpy / Python

    Используя Perl, Python или Ruby, как написать программу для «щелчка» на экране в запланированное время?

    Невозможно установить `pip` для` python 3.3`, но отлично работает для `python 2.7`

    Создание веб-сервера Python – компоновка и настройка

    Измененный BPMF в PyMC3 с использованием `LKJCorr` priors: PositiveDefiniteError с использованием` NUTS`

    Почему json.dumps сбрасывает символы не-ascii с помощью "\ uxxxx"

    самый быстрый способ создания JSON для отражения древовидной структуры в Python / Django с использованием mptt

    Ошибка при установке ZeroMQ

    Добавление каталога библиотек в PyCharm

    Какова ценность короткого замыкания Python?

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