people1 trait1 YES
people1 trait2 YES
people1 trait3 NO
people1 trait4 RED
people2 trait1 NO
people2 trait2 YES
people2 trait4 BLACK
et c ..
Возможно ли из этой таблицы создать что-то вроде этого?
trait1, trait2, trait3, trait4 ...
people1 YES YES NO RED
people2 NO YES - BLACK
people3 - - YES BLUE
Файл слишком большой, чтобы сделать это в Excel, я пробовал в pandas, но я не могу найти помощь в этом случае. Я нашел функцию pd.pivot_table, но не могу создать работающий код. Я попробовал и получил различные ошибки (99% моя вина).
Может кто-нибудь объяснить мне, как использовать его в моем случае? Или, может быть, лучше, чем pandas .pivot? +
РЕДАКТИРОВАТЬ
I rebuild my frame:
1 'interpretation' 'trait'
p1 YES t1
p1 BLACK t2
p1 NO t3
p2 NO t1
p2 RED t2
p2 NO t3
И я использую предложение:
data1.pivot_table ( index = 1, columns = "name", values = 'trait', aggfunc = ','. join, fill_value = '-').
И я получил:
TypeError: sequence item 0: expected str instance, float found
Если я изменю
data1.pivot_table (index = 1, columns = "trait", values = 'value', aggfunc = ','. Join, fill_value = '-').
Я получил неверную таблицу заказов, но без ошибок:
p1 p2 p3 p4
YES trait1 t1
YES t1 t2 etc.
NO
RED
No
...
Так что я думаю, первый вариант правильный, но я не могу исправить эту ошибку. Когда я dtype df, он возвращает (O) для всех столбцов.