Python - группировка по + transform + подстрока - PullRequest
0 голосов
/ 15 февраля 2019

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

Мои данные выглядят так.

  Address          second_dot  third_dot  
0  1.273.1735.0           5         10  
1    1.263.48.0           5          8  
2  1.273.1341.0           5         10  
3  1.273.1527.0           5         10  
4  1.273.1379.0           5         10  
5  1.273.1094.0           5         10  
6   1.273.845.0           5          9  
7  1.273.1393.0           5         10  
8   1.275.988.0           5          9  
9   1.273.973.0           5          9  

В столбцах second_dot и third_dot я сохранил положение в пределах столбца 'address' относительно '.'персонажи.Я хотел бы извлечь из каждой строки все символы между второй и третьей точкой.

Результат должен выглядеть следующим образом:

 Result
    273
    263
    273
    273
    273
    273
    273
    273
    275
    273 

Мне уже удалось это сделать, используя команду apply на оси 1 с пользовательской функцией, но это занимает слишком много времени (у меня естьмиллионы или записи в моем фрейме данных. Учитывая, что адрес повторяется по строкам, я пытаюсь сгруппировать по вычислениям, надеясь ускорить.

Это моя последняя попытка, но она не работает.

df.groupby(['Address']).transform(lambda x : 
x['Address'].str[x['first_dot']:x['second_dot']])

Я получаю ошибку -> KeyError: ('Address', 'occurred at index MachineIdentifier').

MachineIdentifier - первый столбец моего df (не индекс, обычный столбец)

Большое спасибозаранее

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