2024-09-30 02:33:15 发布
网友
我有一个csv文件,其中包含格式为MLA的作者列表。在
csv
MLA
df = pd.read_csv('file.csv')
如果我检查列名:
我想提取Firstname+Familyname并给它分配一个唯一的ID。例如,我想要Rob van der Hilst = 0,Min Chen = 1等等。在
Firstname+Familyname
Rob van der Hilst = 0
Min Chen = 1
如果我对您的问题理解正确,那么您就可以利用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'
用逗号分隔名称,后跟空格:
使用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”来合并名字和姓氏
最终代码是:
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))}
如果我对您的问题理解正确,那么您就可以利用python字符串sclicing和其他奇特的语言特性
以下是代码和说明:
加载名称
用逗号分隔名称,后跟空格:
^{pr2}$使用python切片提取名字和姓氏,名称如下所示: ['van der Hilst'、'Rob'、'Chen'、'Min'、'Huang'…]
切片采用标量的形式[开始:停止:steps],因此我们从第一个名字和第一个larst name开始,然后采取大小为2的步骤来获取所有其他姓氏或名字,如果“stop”为空,则表示“continue til the end”
最后,我们使用字典理解将名称映射到ID,为此,我们使用:
将姓和名粘在一起的zip函数
指定数字的枚举函数
“%s%s”来合并名字和姓氏
^{4}$最终代码是:
相关问题 更多 >
编程相关推荐