Pandas: выбор определенных строк и определенных столбцов с помощью .loc() и/или .iloc()Python

Программы на Python
Anonymous
Pandas: выбор определенных строк и определенных столбцов с помощью .loc() и/или .iloc()

Сообщение Anonymous »

У меня есть кадр данных Pandas, который выглядит следующим образом:

Код: Выделить всё

df = pd.DataFrame ({

'id': [1, 17, 19, 17, 22, 3, 0, 3],
'color': ['Green', 'Blue', 'Orange', 'Yellow', 'White', 'Silver', 'Purple', 'Black'],
'shape' : ['Circle', 'Square', 'Circle', 'Triangle', 'Rectangle', 'Circle', 'Square', 'Triangle'],
'person' : ['Sally', 'Bob', 'Tim', 'Sue', 'Bill', 'Diane', 'Brian', 'Sandy']

})

df

id      color     shape       person
0   1       Green     Circle      Sally
1   17      Blue      Square      Bob
2   19      Orange    Circle      Tim
3   17      Yellow    Triangle    Sue
4   22      White     Rectangle   Bill
5   3       Silver    Circle      Diane
6   0       Purple    Square      Brian
7   3       Black     Triangle    Sandy
Я установил цветной индекс:

Код: Выделить всё

df.set_index ('color', inplace = True )

Код: Выделить всё

          id    shape       person
color
Green     1     Circle      Sally
Blue      17    Square      Bob
Orange    19    Circle      Tim
Yellow    17    Triangle    Sue
White     22    Rectangle   Bill
Silver    3     Circle      Diane
Purple    0     Square      Brian
Black     3     Triangle    Sandy
Я хотел бы выбрать только столбцы id и person и только индексы 2 и 3. Для этого я использую следующее:

Код: Выделить всё

new_df = df.loc[:, ['id', 'person']][2:4]

new_df

id    person
color
Orange    19    Tim
Yellow    17    Sue
Похоже, что это не самый «элегантный» подход. Вместо того, чтобы использовать [2:4] для разделения строк, есть ли способ эффективно объединить .loc (чтобы получить столбцы) и .iloc (чтобы получить строки)?
Спасибо!

Вернуться в «Python»