Читайте разделенную запятыми последовательность из DataFrame в строку в Python - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть DataFrame df , который имеет столбец [Main] и выглядит так:

[Main]
Label1_Dim=    
Label1_Formula= PP    
Label2_Name= Customer 
Label2_Value= Tech Service, INC    
Label2_Dim=

Я хочу сохранить строку Label2_Value= Tech Service, INC в строке, точнеетолько часть
Tech Service, INC.

pos_customer=df[df['[Main]'] == 'Label2_Name= Customer']
pos_customer_index = pos_customer.index
customer = df.iloc[pos_customer.index[0]+1]['[Main]']

customer=customer[13:]

Мой код находит предыдущую строку, сохраняет следующую строку в строке и удаляет первые 13 символов, что должно привести к customer = "Tech Service, INC"

Но, похоже, проблема в запятая .Обычно этот код работает для меня, но в строке с запятой он просто пропускает его и вместо этого идет к Label2_DIM=.Я не знаю почему, и я также попробовал метод python split (), но я не решил его.

Надеюсь, вы, ребята, сможете мне помочь.

1 Ответ

0 голосов
/ 23 ноября 2018

Если я понял ваш вопрос, то ниже должен работать для вас.

Пример DataFrame:

>>> df
                              Main
0            Label2_Name= Customer
1  Label2_Value= Tech Service, INC

, если вы хотите, чтобы строки были только после =, затем попробуйте метод replace, используяregex следующим образом:

>>> df.Main.replace(r'.*=', '', regex=True)
0              Customer
1     Tech Service, INC
Name: Main, dtype: object

Если вы хотите, чтобы эту конкретную (Label2_Value= Tech Service, INC) строку заменили, то:

>>> df.Main.replace(r'^Label2_Value=', '', regex=True)
0    Label2_Name= Customer
1    Tech Service, INC      <--- here it is
Name: Main, dtype: object

Без регулярного выражения Просто с replace:

>>> df.Main.replace('Label2_Value= Tech Service, INC', 'Tech Service, INC')
0    Label2_Name= Customer
1        Tech Service, INC
Name: Main, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...