Как использовать значения данных в качестве столбца и выборочно помещать в них значения? - PullRequest
2 голосов
/ 03 мая 2019

Я новичок в использовании фрейма данных Pandas и на самом деле застрял с проблемой.

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

A      B      ATTR      VAL
AA     BB     type      circular
AA     BB     size      2mm
AA     BB     shape     square
AA     BB     tip       bend

Я предоставлю строку, которая проверит этот фрейм данных, выберет слова и вернет вывод, который будет выглядеть примерно так:

A     B     type       size   shape   tip
AA    BB    circular   2mm    square  bend

Это я сделаю для огромного набора данных, но сейчас я пробую это на этом, как только сделаю, я применю тот же код к этому огромному набору данных.

main_dict = pd.read_excel('File.xlsx')
header = main_dict.iloc[:,0:2]
data = main_dict.iloc[:,2:4]
matr_desc = "AA BB  2mm circular bend".split()

for i,j in enumerate(main_dict['Attribute']):
  for k,l in enumerate(main_dict['Values']):
    print(l)
    header[j][k] = l

После этого я застреваю, я знаю, что это может быть очень легко, но, поскольку я новичок, у меня возникли некоторые трудности при построении этого.

1 Ответ

4 голосов
/ 03 мая 2019

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

df.set_index(['A','B', 'ATTR']).unstack('ATTR')

или pivot_table:

df.pivot_table(index=['A', 'B'], columns='VAL', values='ATTR', aggfunc='first')

Оба будут давать ожидаемыйвыход.Однако обратите внимание, что дубликаты, охватывающие столбцы A, B и ATTR (т.е. несколько строк, в которых все эти три столбца имеют одинаковые значения), могут иметь нежелательные результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...