#python #pandas
Вопрос:
У меня проблема. Я начинающий, и я пытаюсь взять вторую часть колонки «Нация», которая написана так: «мы, МЫ», и я хочу взять вторую часть (НАС).
df['Nation'] = df.Nation.apply(lambda pos: pos.split("")[0])
Я пытаюсь, но это занимает первую часть (нас)
Комментарии:
Ответ №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]