Метод разбиения Pandas Series str прерывается с отрицательным просмотром вперед

У меня есть серия Pandas, из которой я хочу извлечь некоторую информацию. Серия выглядит следующим образом:

import pandas as pd
ex = {0: 'A_26_y',
 1: 'A_25_x',
 2: 'B
ex.str.split(r"(_)(?!.*\1)", expand=True)
x', 3: 'A_17_y', 4: 'B_11_x', 5: 'A_19_y', 6: 'A_17_y', 7: 'A_18_x', 8: 'C_x', 9: 'B_12_y'} ex = pd.Series(ex) ex 0 A_26_y 1 A_25_x 2 B
ex.str.split(r"(_)(?!.*\1)", expand=True)
x 3 A_17_y 4 B_11_x 5 A_19_y 6 A_17_y 7 A_18_x 8 C_x 9 B_12_y dtype: object

Я хочу разбить серию на втором появлении знака _. Я попытался использовать отрицательный прогноз, как показано ниже:

ex.str.split(r"(_)(?!.*\1)", expand=True)

Однако в результате получается 3 столбца, а не 2, как я ожидал, поскольку он возвращает также разделитель:

    0   1   2
0   A_26    _   y
1   A_25    _   x
2   B_3     _   x
3   A_17    _   y
4   B_11    _   x
5   A_19    _   y
6   A_17    _   y
7   A_18    _   x
8   C       _   x
9   B_12    _   y

Как я могу это исправить?


person jakes    schedule 05.01.2021    source источник
comment
r"_(?!.*_)" или r"_(?=[^_]*$)". Не захватывайте _.   -  person Wiktor Stribiżew    schedule 05.01.2021
comment
как насчет ex.str.split(_,expand=True)?   -  person anilkunchalaece    schedule 05.01.2021


Ответы (1)