Как удалить часть строки после определенного символа для каждого элемента серии Pandas (или списка)? - PullRequest
0 голосов
/ 27 января 2020

У меня есть серия Pandas, например ['AAA.B', 'BBB. C', 'CCC .D']. Я хочу удалить часть каждой строки после периода включительно. Другими словами, желаемый результат здесь будет ['AAA', 'BBB', 'CCC']. Я не могу понять, как это сделать, не перебирая каждый элемент по одному, чтобы работать с ними по отдельности, что было бы действительно неэффективно. Есть идеи, как это сделать?

Ответы [ 3 ]

3 голосов
/ 27 января 2020

Использование str.split

Пример:

s = pd.Series( ['AAA.B', 'BBB.C', 'CCC.D'])
print(s.str.split(".").str[0])

Выход:

0    AAA
1    BBB
2    CCC
dtype: object
1 голос
/ 27 января 2020

Лучший способ сделать это -

s = s.split('.')[0]

Другим способом может быть регулярное выражение. Или, если часть после «.» также необходимо использовать, сделайте

head, sep, tail = s.partition('.')

. Здесь head будет содержать строковую часть перед '.', sep будет содержать '.', а tail будет содержать часть после '.'

1 голос
/ 27 января 2020

Вы можете использовать str.replace:

s = pd.Series(['AAA.B', 'BBB.C', 'CCC.D'])
s.str.replace(r'(\.\w+)', '')

0    AAA
1    BBB
2    CCC
dtype: object
...