Изменение значений столбца в заголовках столбцов в pandas

У меня есть следующий код, который принимает значения в одном столбце блока данных pandas и делает их столбцами нового фрейма данных. Значения в первом столбце блока данных становятся индексом нового кадра данных.

В некотором смысле, я хочу превратить список смежности в матрицу смежности. Вот код:

import pandas as pa print "Original Data Frame" # Create a dataframe oldcols = {'col1':['a','a','b','b'], 'col2':['c','d','c','d'], 'col3':[1,2,3,4]} a = pa.DataFrame(oldcols) print a # The columns of the new data frame will be the values in col2 of the original newcols = list(set(oldcols['col2'])) rows = list(set(oldcols['col1'])) # Create the new data matrix data = np.zeros((len(rows), len(newcols))) # Iterate over each row and fill in the new matrix for row in zip(a['col1'], a['col2'], a['col3']): rowindex = rows.index(row[0]) colindex = newcols.index(row[1]) data[rowindex][colindex] = row[2] newf = pa.DataFrame(data) newf.columns = newcols newf.index = rows print "New data frame" print newf 

Это работает для этого конкретного примера:

 Original Data Frame col1 col2 col3 0 ac 1 1 ad 2 2 bc 3 3 bd 4 New data frame cd a 1 2 b 3 4 

Он будет терпеть неудачу, если значения в col3 не являются числами. Мой вопрос в том, есть ли более элегантный / надежный способ сделать это?

One Solution collect form web for “Изменение значений столбца в заголовках столбцов в pandas”

Это похоже на работу для опоры :

 import pandas as pd oldcols = {'col1':['a','a','b','b'], 'col2':['c','d','c','d'], 'col3':[1,2,3,4]} a = pd.DataFrame(oldcols) newf = a.pivot(index='col1', columns='col2') print(newf) 

доходность

  col3 col2 cd col1 a 1 2 b 3 4 

Если вам не нужен столбец MultiIndex, вы можете удалить col3 используя:

 newf.columns = newf.columns.droplevel(0) 

которые затем

 col2 cd col1 a 1 2 b 3 4 
  • Как объединить данные столбца с одним и тем же значением и суммировать его конкретные данные
  • отключить кадр данных индекса pandas
  • pandas.algos._return_false вызывает PicklingError с dill.dump_session на CentOS
  • Преобразование словаря в Dataframe с кортежем как ключом
  • Pandas DataFrame Добавить столбец в индекс без сброса
  • pandas slicing мультииндексный фрейм
  • Правильный способ установки значения на фрагменте в pandas
  • Тип данных периода времени Pandas печатает как цифры?
  • Как преобразовать временные рамки pandas dataframe с использованием атрибутов индекса?
  • Наиболее эффективный способ переназначения значений NaN в массиве numpy
  • pandas создает новый столбец на основе значений из других столбцов
  •  
    Interesting Posts for Van-Lav

    Параметр python по умолчанию оценивается только один раз?

    Почему в Python не сообщалось об ошибках многопроцессорности и о том, как включать ошибки отчетности?

    Время выполнения скрипта Python увеличивается при одновременном выполнении нескольких раз

    Инструменты, помогающие разработчикам быстрее читать иерархию классов

    Как закрыть подпроцесс Python 2.5.2 Popen, когда у меня есть данные, которые мне нужны?

    Подстановочные пространства имен в lxml

    Как проверить, является ли модуль / библиотека / пакет частью стандартной библиотеки python?

    python flask как передать динамический параметр декоратору

    Не удалось заставить ToMany работать в Tastypie

    Как удалить пакет python, который был установлен с помощью distutils?

    gethostbyname_ex (имя хоста) чрезвычайно медленно

    Как добавить строку в качестве спрайта в pygame?

    cx-freeze не включает модули, даже если они включены

    Извлеките хэш SHA1 из файла torrent

    установка интерфейса поляризации в python

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