Сопоставление от dict к каждой строке в Pandas DF - PullRequest
0 голосов
/ 05 августа 2020

Я использовал этот пост ( Назначьте номер каждому уникальному значению в списке ) в качестве ссылки, но вместо присвоения номера каждому значению в списке я хотел бы присвоить номера каждому значение в списке, содержащемся в кадре данных. Я действительно близок, но я не могу правильно получить значения, присвоенные фрейму данных. Вот фрейм данных:

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...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...