Как получить указанный c текст в индексе кадра данных? - PullRequest
0 голосов
/ 01 марта 2020

У меня есть фрейм данных с некоторыми текстовыми индексами, который содержит необходимую информацию, которую я хочу скопировать в список.

Я не знаю, как конкретно текстовая информация (слово всегда меняется), но Я знаю, где находится в индексе:

'point.subclase.optimum. R31 .done' . R31 - это значение, которое я хотел бы написать в списке, поэтому я знаю, что этот текст, который всегда отличается, находится между point.subclase.optimum. и .done .

Я пробовал:

info_list = []
for col in df.columns:
    if ('point.subclase.optimum.' in col) and ('.done' in col):
        info_list.append(col)

Но этот скрипт просто предоставил мне полный индекс в списке.

Кто-нибудь знает, как это решить?

1 Ответ

1 голос
/ 01 марта 2020

Используйте Series.str.extract с экранированием \., потому что это специальный символ регулярного выражения, затем удалите возможные пропущенные значения, если не найдено совпадений, по Series.dropna и последний результат преобразования в список:

df = pd.DataFrame({'a':range(3)}, index=['point.subclase.optimum.R31.done',
                                         'point.subclase',
                                         'point.subclase.optimum.R98.done'])
print (df)
                                 a
point.subclase.optimum.R31.done  0
point.subclase                   1
point.subclase.optimum.R98.done  2

L = (df.index.str.extract(r'point\.subclase\.optimum\.(.*)\.done', expand=False)
             .dropna()
             .tolist())
print (L)
['R31', 'R98']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...