Я использовал этот пост ( Назначьте номер каждому уникальному значению в списке ) в качестве ссылки, но вместо присвоения номера каждому значению в списке я хотел бы присвоить номера каждому значение в списке, содержащемся в кадре данных. Я действительно близок, но я не могу правильно получить значения, присвоенные фрейму данных. Вот фрейм данных:
profile skills
0 DevOps Developer [Kubernetes, Linux, Windows, Eclipse, PagerDut...
1 Software Developer [Debian Linux, Windows, Linux, NetBeans, MySQL...
2 Software Developer [Firebase, XAMPP, JSON, , ]
3 Query Optimization Developer [Unix, Windows, SQL Server Integration Service...
4 Software Developer [Linux, Windows, JSON, PostgreSQL, Mnesia, NoS...
А вот список уникальных навыков в all_skills:
['Kubernetes',
'Linux',
'Windows',
'Eclipse',
'PagerDuty',
'Apache2',
'Docker',
'AWS EC2',
'Amazon Web Services (AWS)',
'Sysdig',
'Apache Kafka',
'AWS Lambda',
'Azure',
'OpenStack',
'AWS S3',
'MongoDB',
'Cassandra',...
, которым я смог присвоить уникальные значения с помощью ddict. Я сохранил этот результат в factorized_skills:
d = {ni: indi for indi, ni in enumerate(set(all_skills))}
factorized_skills = [d[ni] for ni in all_skills]
И это то, что я пробовал, чтобы сопоставить каждое значение, соответствующее этому навыку, в кадре данных навыков:
for index, row in skills.skills.iteritems():
for item in row:
**row[item]** = [d[ni] for ni in all_skills]
I ' m не уверен, что я должен назначить результат, чтобы получить этот ожидаемый результат:
profile skills
0 DevOps Developer [1230, 169, 1236, 178...]
1 Software Developer [1091, 1236, 169, 901, 795...]
2 Software Developer [383, 939, 974... ]
3 Query Optimization Developer [966, 1236, 709...]