Панды данные по строкам в виде таблицы - PullRequest
0 голосов
/ 06 июля 2018

У меня есть информация из CSV-файла, который представлен в виде строки:

Color     Shape    Value
red       triangle    10
red       circle      11
blue      triangle    12
blue      circle      13

Мне нужно преобразовать это в новый dataFrame в матричной форме, где столбцы - это цвета, а индексы - это формы.

           red  blue
triangle    10    12
circle      11    13

Мне удалось сделать это, повторяя в цикле

new_df = pd.DataFrame(columns=list_of_colors, index=list_of_shapes)

for color_i in list_of_colors:
  # this gives me the values of each color sorted* by Shape
  df[df['Color'] == color_i].sort_values('Shape')['Value']

  # so I can append this to the new dataframe
  ...
  • Мне действительно не нужно сортировать фигуры, но я должен гарантировать, что на каждой итерации полученный список фигур будет в том же порядке, иначе полученная таблица будет неправильной

Это работает, это, я думаю, я переусердствовал. Есть ли прямой способ взять информацию по строкам и преобразовать ее в табличную форму?

Спасибо

1 Ответ

0 голосов
/ 06 июля 2018

Вы можете использовать pivot_table():

Для данных: импортировать панд как pd

df = pd.DataFrame({'Color': ['red', 'red', 'blue', 'blue'],
                   'Shape': ['triangle', 'circle', 'triangle', 'circle'],
                   'Value': [10, 11, 12, 13]})


df.pivot_table(index = 'Color', columns = 'Shape', values = 'Value')

Результат:

Shape   circle  triangle
Color       
blue     13       12
red      11       10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...