Определите значения столбцов, которые будут выбираться / анализироваться по умолчанию - PullRequest
1 голос
/ 07 мая 2020

Я бы хотел автоматизировать выбор значений в одном столбце - Step_ID. После определения того, какой Step_ID я хотел бы отфильтровать (показано в приведенном ниже коде), я хотел бы определить, что первый Step_ID и последний Step_ID должны быть исключены.

df = df.set_index(['Step_ID'])

df.loc[df.index.isin(['Step_2','Step_3','Step_4','Step_5','Step_6','Step_7','Step_8','Step_9','Step_10','Step_11','Step_12','Step_13','Step_14','Step_15','Step_16','Step_17','Step_18','Step_19','Step_20','Step_21','Step_22','Step_23','Step_24'])]

Есть ли какой-либо вариант для исключить первое и последнее значение в столбце? В этом примере Step_1 и Step_25. Или включить все значения, кроме первого и последнего? В этом примере Step_2-Step_24.

Причина в том, что файлы имеют разные номера «Step_ID». Поскольку мне не нужно постоянно его переопределять, я хотел бы иметь решение, которое упростило бы их фильтрацию. Необходимо исключить первое и последнее значение в столбце «Step_ID», но количество STEP_ID всегда разное.

По Step_1 - Step_X мне нужно иметь Step_2 - Step_ (X-1) .

1 Ответ

0 голосов
/ 07 мая 2020

Используйте:

df = pd.DataFrame({
    'Step_ID': ['Step_1','Step_1','Step_2','Step_2','Step_3','Step_4','Step_5',
                'Step_6','Step_6'],
    'B': list(range(9))})
print (df)
  Step_ID  B
0  Step_1  0
1  Step_1  1
2  Step_2  2
3  Step_2  3
4  Step_3  4
5  Step_4  5
6  Step_5  6
7  Step_6  7
8  Step_6  8

Выберите все значения индекса без первого и последнего значений индекса, извлеченных путем нарезки df.index[[0, -1]]:

df = df.set_index(['Step_ID'])
df = df.loc[~df.index.isin(df.index[[0, -1]].tolist())]
print (df)
         B
Step_ID   
Step_2   2
Step_2   3
Step_3   4
Step_4   5
Step_5   6
...