Разделите пробелы в строках

#python #pandas

Вопрос:

У меня проблема. Я начинающий, и я пытаюсь взять вторую часть колонки «Нация», которая написана так: «мы, МЫ», и я хочу взять вторую часть (НАС).

 df['Nation'] = df.Nation.apply(lambda pos: pos.split("")[0])
 

Я пытаюсь, но это занимает первую часть (нас)

Комментарии:

1. df['Nation'].str.rsplit(n=1).str[-1]

Ответ №1:

[0] означает первую часть. Изменение его на [1] или [-1] решило бы проблему, но есть лучший способ: используйте .str методы

 df['Nation'] = df.Nation.str.split().str[1]
 

Комментарии:

1. AttributeError: Можно использовать метод доступа .str только со строковыми значениями! Я не знаю, почему, потому что, если я это сделаю df.info Я вижу колонку как объект

2. @Roberto можете ли вы дать образец данных для воспроизведения?

Ответ №2:

Вероятно, ваш столбец Nation смешан с некоторыми данными не строкового типа. В таком случае приведите свой столбец сначала к строке .astype() , прежде чем разделять строку на .str.split() , следующим образом:

 df['Nation'] = df['Nation'].astype(str).str.split().str[1]
 

или используйте .astype() с str.rsplit() , как показано ниже:

 df['Nation'] = df['Nation'].astype(str).str.rsplit().str[-1]