Создайте пользовательский столбец в зависимости от того, как начинается другое значение столбца. - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть следующий фрейм данных: enter image description here Персональный номер Ошибка Название отдела Электронная почта Страна
CZ 10054609 Идентификатор 11380151 используется Veronika Fi ... CZ: Сеть поставок Pohořelice 1 Henkel Cosmeticos. .. verca.fialova. 2001@gmail.com CZ 10054620 Идентификатор 11380126 используется Radmila Val ... CZ: цепочка поставок Pohořelice 1 Henkel VAS (CZM63 ... rvalova1@seznam.cz CZ 10054728 Идентификатор 11805326 используется Pavel Pecka .. .ZZ: цепочка поставок Pohořelice 3 Levis (CZM630.415 ... pavlias000@seznam.cz CZ 10054699 Идентификатор 11380232 используется Sabina Love ... CZ: цепочка поставок Pohořelice 3 Marks и Spencer ... s. loveckova@seznam.cz CZ 10054727 Идентификатор 11805358 используется Tereza Holč ... CZ: Цепочка поставок Pohořelice 3 Levis (CZM630.415 ... tholcapko@seznam.cz

Мне нужно создать столбец с именем "Тип ошибки", который соответствует условию:

  • Если столбец «Ошибка» начинается с «Идентификатор», укажите значение «Дублировано»
  • Если столбец начинается с «Данные», укажите значение «Транзакция»

Как лучше всего решить эту проблему?

1 Ответ

0 голосов
/ 19 февраля 2020

РЕДАКТИРОВАТЬ:

Если существует много разных значений, создайте словарь для отображения и установите значения в l oop:

df=pd.DataFrame({'Error':['The Identifier 1','The Identifier 3','The data dd','another data']})

#add all possible values
mapping = {'The Identifier': 'Duplicated','The data':'Transaction'}

df['Error'] = df['Error'].str.strip()

for k, v in mapping.items():
   df.loc[df['Error'].str.startswith(k), 'new'] = v
print (df)
              Error          new
0  The Identifier 1   Duplicated
1  The Identifier 3   Duplicated
2       The data dd  Transaction
3      another data          NaN
...