извлечение строки из панд - PullRequest
0 голосов
/ 13 октября 2019

У меня есть датафрейм, я хочу извлечь из него число, если слово «перевод» находится в 8 столбце, оно должно быть извлечено из позиции 13, 15 символов, а в противном случае оно должно быть извлечено из позиции 21, 15 символов

 =IF(LEFT(C10,8)="Transfer",MID(C10,13,15),MID(C10,21,15)) i want same excel from formula in pandas


Particular                                     Expected Result
On-Line Transfer -  01901091900014              01901091900014 
On-Line Transfer -  02501091900004              02501091900004 
On-Line Transfer -  03601091900018              03601091900018 
Transfer -  03631081900095                      03631081900095 
Transfer -  03829081900083                      03829081900083

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

вы можете использовать метод разделения строк, если ваши данные имеют номер в конце после пробела. В противном случае вы можете использовать регулярное выражение

df = pd.DataFrame([['On-Line Transfer -  01901091900014'], ['On-Line Transfer -  02501091900004'], ['On-Line Transfer -  03601091900018'], ['Transfer -  03631081900095'], ['Transfer -  03829081900083']], columns=['Particular'])
df["Particular"].str.split().str[-1]
0 голосов
/ 13 октября 2019

Попробуйте это:

import pandas as pd
import numpy as np

df['new_extract_column'] = np.nan

df.loc[ df['column8'].str.contains('transfer'), 'new_extract_column' ] = df[ df['column8'].str.contains('transfer') ].apply(lambda x: x[13:16])

df.loc[ ~df['column8'].str.contains('transfer'), 'new_extract_column' ] = df[ df['column8'].str.contains('transfer') ].apply(lambda x: x[15: 22])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...