Python - Получить последний элемент после str.split () - PullRequest
0 голосов
/ 11 декабря 2018

Я использую панд, и у меня есть данные, и данные выглядят так

FirstName LastName StudentID
FirstName2 LastName2 StudentID2

Затем я делю их на «пространство» с помощью str.split ()

Таким образом, данные будутв DataFrame это выглядит

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

Как взять StudentID только для каждого учащегося и сохранить его в новом столбце?Любая помощь будет большой помощью.Спасибо.

Ответы [ 4 ]

0 голосов
/ 11 декабря 2018

Использование конструктора фрейма данных

pd.DataFrame(df.text.str.split(' ').tolist()).iloc[:,0]
Out[15]: 
0     FirstName
1    FirstName2
Name: 0, dtype: object
0 голосов
/ 11 декабря 2018

Почему бы не попробовать простое понимание списка

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

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

, которое напечатает

['StudentID', 'StudentID2']
0 голосов
/ 11 декабря 2018

Вы можете сделать что-то вроде этого:

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
0 голосов
/ 11 декабря 2018

Используйте понимание списка, чтобы взять последний элемент каждой из разделенных строк:

ids = [val[-1] for val in your_string.split()]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...