Как проверить разделенные значения столбца без изменения кадра данных? - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь найти столбцы, соответствующие определенным условиям, и помещаю значение в столбец col.

Моя текущая реализация:

df.loc[~(df['myCol'].isin(myInfo)), 'col'] = 'ok'

В будущем myColбудет иметь несколько информации.Поэтому мне нужно разделить значение в myCol без изменения кадра данных и проверить, есть ли какие-либо из разделенных значений в myInfo.Если один из них, текущая строка должна получить значение 'ok' в столбце col.Есть ли элегантный способ без реального разделения и сохранения в дополнительной переменной?В настоящее время я не знаю, как будет представлена ​​множественная информация (либо разделенная символом, либо просто конкатенированная один за другим, каждый из которых состоит из 4 буквенно-цифровых значений).

1 Ответ

0 голосов
/ 23 апреля 2019

Допустим, вам нужно разделить на "-" для столбца myCol.

sep='-'
deconcat = df['MyCol'].str.split(sep, expand=True)
new_df=df.join(deconcat)

new_df DataFrame будет иметь тот же индекс, что и df, поэтому вы можете сделатьто, что вы хотите, с помощью new_df, а затем join обратно на df, чтобы отфильтровать его, как вы хотите.

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

Источник: Код, взятый из документации pyjanitor со встроенной функцией, deconcatenate_column, которая делает это.

Исходный код для deconcatenate_column

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...