Как добавить текст к значению столбца - PullRequest
1 голос
/ 04 октября 2019

Я пытаюсь выполнить несколько очисток на DataFrame. Чтобы отслеживать, что случилось с данными, я добавил столбец с именем applied_rules в DataFrame.

На каждом шаге я хочу добавить строку в столбец applied_rules, если запись имеетбыл обновлен.

Как правило, это выглядит так:

mask = df['type'] == "test"
df.loc[mask, 'value'] = "updated"
df.loc[mask].assign(applied_rules=lambda x: x.applied_rules + "Rule 1 - ...")

Все, applied_rules возвращает пустое значение.

Если я использую:

mask = df['type'] == "test"
df.loc[mask, 'value'] = "updated"
df[mask]['applied_rules'] += "GR001a - updated position because it was not corresponding to a standard one\n"

Сохраняется только последнее значение.

Как правильно добавить текст к значению?

1 Ответ

0 голосов
/ 04 октября 2019

Использование DataFrame.loc с mask:

df = pd.DataFrame({
         'type':['text',"test",'text',"test","test",'text'],
         'applied_rules':list('aaabbb')
})

mask = df['type'] == "test"
df.loc[mask, 'value'] = "updated"
df.loc[mask, 'applied_rules'] += " GR001a... "

#alternative
#df.loc[mask, 'applied_rules'] = df.loc[mask, 'applied_rules'] + " GR001a... "

print (df)
   type applied_rules    value
0  text             a      NaN
1  test  a GR001a...   updated
2  text             a      NaN
3  test  b GR001a...   updated
4  test  b GR001a...   updated
5  text             b      NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...