Есть ли более быстрый способ равномерного форматирования имени и фамилии на pandas кадре данных? - PullRequest
0 голосов
/ 02 апреля 2020

Существует ли какой-либо "стандартный" способ обработки неравномерно введенных имен в pandas фреймах данных? Например, у нас может быть фрейм данных об участниках какого-либо события. В этом кадре данных есть столбец «Имя», в котором указано имя участника. Имена имеют разные форматы (порядок ввода имени, фамилии и заглавных букв:

  1. Имя Фамилия
  2. Имя Фамилия
  3. Имя Фамилия
  4. Фамилия , Имя
  5. Фамилия Имя
  6. Фамилия, Имя

... и т. Д.

Какой самый умный способ отформатировать все имена единообразно, как «Имя, Фамилия»? Можно пройти через все строки oop и использовать регулярное выражение, но должен быть лучший способ.

1 Ответ

0 голосов
/ 02 апреля 2020

Предполагая, что все имена без запятых имеют первое имя, а имена с запятыми имеют фамилию первой, вы можете выполнить sh в два этапа:

Сначала вам нужно позаботиться о строках с запятыми - удалите запятую и измените порядок имен:

mask = df["Name"].str.contains(",")  # These are the rows we want to change
df.loc[mask, "Name"] = df.loc[mask, "Name"].str.split(", ").apply(reversed).str.join(" ")

Затем вы можете использовать str.title для принудительного ввода регистра:

df["Name"] = df["Name"].str.title()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...