Python-在str.split()之后获取最后一个元素

时间:2018-12-10 23:55:35

标签: python pandas

我使用熊猫,并且我有数据,数据看起来像这样

FirstName LastName StudentID
FirstName2 LastName2 StudentID2

然后我使用str.split()在'space'的基础上进行拆分

所以数据在DataFrame中看起来像这样

[[FirstName, LastName, StudentID],
[FirstName2, LastName2, StudentID2]]

如何仅获取每个学生的StudentID并将其保存在新列中?任何帮助都是很大的帮助。谢谢。

5 个答案:

答案 0 :(得分:1)

使用列表推导来获取每个拆分字符串的最后一个元素:

ids = [val[-1] for val in your_string.split()]

答案 1 :(得分:1)

您可以执行以下操作:

import pandas as pd

data = ['FirstName LastName StudentID',
'FirstName2 LastName2 StudentID2']

df = pd.DataFrame(data=data, columns=['text'])

df['id'] = df.text.apply(lambda x: x.split()[-1])

print(df)

输出

text          id
0     FirstName LastName StudentID   StudentID
1  FirstName2 LastName2 StudentID2  StudentID2

或者,作为替代:

df['id'] = [x.split()[-1] for x in df.text]
print(df)

输出

text          id
0     FirstName LastName StudentID   StudentID
1  FirstName2 LastName2 StudentID2  StudentID2

答案 2 :(得分:1)

使用数据框构造器

pd.DataFrame(df.text.str.split(' ').tolist()).iloc[:,0]
Out[15]: 
0     FirstName
1    FirstName2
Name: 0, dtype: object

答案 3 :(得分:1)

尝试以下解决方案:

item["x"]["y"].split(' ')[-1]

答案 4 :(得分:0)

为什么不尝试简单的列表理解

students = [
    ["FirstName", "LastName", "StudentID"],
    ["FirstName2", "LastName2", "StudentID2"]
]

print([student[2] for student in students])

将打印

['StudentID', 'StudentID2']