Python:从文件nam中提取唯一的id

2024-09-30 02:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,其中包含格式为MLA的作者列表。在

df = pd.read_csv('file.csv')

如果我检查列名:

^{pr2}$

我想提取Firstname+Familyname并给它分配一个唯一的ID。例如,我想要Rob van der Hilst = 0Min Chen = 1等等。在


Tags: 文件csviddf列表read格式作者
1条回答
网友
1楼 · 发布于 2024-09-30 02:33:15

如果我对您的问题理解正确,那么您就可以利用python字符串sclicing和其他奇特的语言特性

以下是代码和说明:

加载名称

names = 'van der Hilst, Rob, Chen, Min, Huang, Hui, Niu, Fenglin, Yao, Huajian' + \
        'Malanotte-Rizzoli, Paola, Eltahir, Elfatih, Wei, Jun, Xue, Pengfei' + \
        'Bowring, Samuel, Hoke, Gregory, Schmitz, Mark'

用逗号分隔名称,后跟空格:

^{pr2}$

使用python切片提取名字和姓氏,名称如下所示: ['van der Hilst'、'Rob'、'Chen'、'Min'、'Huang'…]

切片采用标量的形式[开始:停止:steps],因此我们从第一个名字和第一个larst name开始,然后采取大小为2的步骤来获取所有其他姓氏或名字,如果“stop”为空,则表示“continue til the end”

last_names = names[::2]
first_names = names[1::2]

最后,我们使用字典理解将名称映射到ID,为此,我们使用:

将姓和名粘在一起的zip函数

指定数字的枚举函数

“%s%s”来合并名字和姓氏

^{4}$

最终代码是:

names = 'van der Hilst, Rob, Chen, Min, Huang, Hui, Niu, Fenglin, Yao, Huajian' + \
        'Malanotte-Rizzoli, Paola, Eltahir, Elfatih, Wei, Jun, Xue, Pengfei' + \
        'Bowring, Samuel, Hoke, Gregory, Schmitz, Mark'
names = names.split(', ')
last_names = names[::2]
first_names = names[1::2]

names = {'%s %s' % (fn, ln) : _id for _id, (fn, ln) in enumerate(zip(first_names, last_names))}

相关问题 更多 >

    热门问题