Удалить часть строки после указанного c символа в Python - PullRequest
1 голос
/ 05 марта 2020

Учитывая столбец time следующим образом:

             time
0   2019Y8m16d10h
1    2019Y9m3d10h
2  2019Y9m3d10h58s
3    2019Y9m3d10h

Как удалить подстроки, начинающиеся с d, я пробовал с df['time'].str.split('d')[0], но это не работает.

Мой желаемый результат понравится. Спасибо.

        time
0    2019Y8m16d
1    2019Y9m3d
2    2019Y9m3d
3    2019Y9m3d

Ответы [ 3 ]

1 голос
/ 05 марта 2020

Одно из возможных решений:

df['time'].str.extract(r'([^d]+d)')
1 голос
/ 05 марта 2020

Или вы можете просто использовать функциональность применения, чтобы решить задачу следующим образом:

df.apply(lambda x: x['time'].split('d')[0]+'d',axis=1)
1 голос
/ 05 марта 2020

Вы близки, вам нужно str[0] для выбора списков и затем добавить d:

df['time'] = df['time'].str.split('d').str[0].add('d')

Или:

df['time'] = df['time'].str.split('(d)').str[:2].str.join('')

print (df)
         time
0  2019Y8m16d
1   2019Y9m3d
2   2019Y9m3d
3   2019Y9m3d

Или использовать Series.str.extract:

df['time'] = df['time'].str.extract('(.+d)')
print (df)
         time
0  2019Y8m16d
1   2019Y9m3d
2   2019Y9m3d
3   2019Y9m3d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...