Получить индекс из определенного значения в панде Dataframe - PullRequest
0 голосов
/ 13 февраля 2019

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

import glob, os
from pandas import *
filepath = r'C:\Users\Dani\Documents\clase dani\PhD\GC\Cuanti'
for csv_file in glob.glob(os.path.join(filepath, '*.csv')):
    rt=pandas.read_csv(csv_file, skiprows=6)
    rt.set_index('Peak')
    RTlist=rt.loc[:,'R.T.']
    for item in RTlist:
        if 5.5<item<5.8:
            #here's where I want to get the row index where item is at, but I can't achieve it. 

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

В демонстрационных целях я создал исходный DataFrame (rt) следующим образом:

rt = pd.DataFrame([ [ 1, 2, 5 ], [ 2, 5, 6 ], [ 3, 5.52, 7 ], [ 4, 5.6, 8 ],
    [ 5, 5.75, 9 ], [ 6, 5.8, 10 ], [ 7, 6, 11 ] ],
    columns=[ 'Peak', 'R.T.', 'Xxx' ])
rt.set_index('Peak')

Результат (пары индекс / значение) можно получить с помощью инструкции single :

rt['R.T.'][rt['R.T.'].between(5.5, 5.8, inclusive=False)]

Для моих тестовых данных он печатает:

2    5.52
3    5.60
4    5.75

rt['R.T.'] выбирает целый столбец 'R.T.'.

Тогда [rt['R.T.'].between(5.5, 5.8, inclusive=False)] является предикатом,выбор значений в указанном диапазоне.

Или, может быть, вас интересуют только значения индекса ?Если это так, напишите:

rt[rt['R.T.'].between(5.5, 5.8, inclusive=False)].index
0 голосов
/ 13 февраля 2019

Использование iteritems для циклического просмотра списка RT Series может быть тем, что вы ищете

for index, item in RTlist.iteritems():
    if 5.5<item<5.8:
        item_index = index
        item_value = item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...