Использование replace и str.startswith () в фрейме данных pandas для переименования значений - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть столбец с именем source, который содержит пару сотен строк текста.Дело в том, что некоторые из них могут быть сгруппированы вместе, и я изо всех сил пытаюсь сделать это в кадре данных Pandas.Вот мой код:

df.source.replace({
                   df.source.str.startswith('share', na=False): 'sharePet',
                   df.source.str.startswith('2012-01-08', na=False): 'shareDate'

                 })

Кроме того, будет ли это работать для второй строки, которая начинается с даты?если нет, то я могу оставить это для первой строки и других группировок, которые являются текстовыми.

Буду рад некоторым советам.

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете использовать словарь и повторять:

d = {'share': 'sharePet', '2012-01-08': 'shareDate'}

for k, v in d.items():
    df.loc[df['source'].str.startswith(k, na=False), 'source'] = v

Панды str.startswith работает только для строк.Вы можете легко проверить, какие типы существуют в вашей серии, с помощью set(map(type, df['source'])).

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