pandas
Использование .ix, .iloc, .loc, .at и .iat для доступа к DataFrame
Поиск…
Использование .iloc
.iloc использует целые числа для чтения и записи данных в DataFrame.
Во-первых, давайте создадим DataFrame:
df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
'two': [6, 7, 8, 9, 10],
}, index=['a', 'b', 'c', 'd', 'e'])
Этот DataFrame выглядит так:
one two
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
Теперь мы можем использовать .iloc для чтения и записи значений. Давайте прочитаем первую строку, первый столбец:
print df.iloc[0, 0]
Это напечатает:
1
Мы также можем установить значения. Позволяет установить второй столбец, второй ряд, на что-то новое:
df.iloc[1, 1] = '21'
А потом посмотрите, что произошло:
print df
one two
a 1 6
b 2 21
c 3 8
d 4 9
e 5 10
Использование .loc
.loc использует метки для чтения и записи данных.
Давайте настроим DataFrame:
df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
'two': [6, 7, 8, 9, 10],
}, index=['a', 'b', 'c', 'd', 'e'])
Затем мы можем напечатать DataFrame, чтобы посмотреть на форму:
print df
Это приведет к выводу
one two
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
Мы используем метки столбцов и строк для доступа к данным с помощью .loc. Давайте установим строку 'c', столбец 'two' в значение 33:
df.loc['c', 'two'] = 33
Вот как выглядит DataFrame:
one two
a 1 6
b 2 7
c 3 33
d 4 9
e 5 10
Следует отметить, что использование df['two'].loc['c'] = 33
может не сообщать о предупреждении и даже работать, однако использование df.loc['c', 'two']
гарантированно работает правильно , а первое - нет.
Мы можем считывать фрагменты данных, например
print df.loc['a':'c']
будет печатать строки от a до c. Это включено.
one two
a 1 6
b 2 7
c 3 8
И, наконец, мы можем сделать оба вместе:
print df.loc['b':'d', 'two']
Выведет строки b в c столбца «два». Обратите внимание, что метка столбца не печатается.
b 7
c 8
d 9
Если .loc поставляется с целым аргументом, который не является меткой, он возвращается к целочисленной индексации осей (поведение .iloc). Это позволяет использовать смешанную метку и целую индексацию:
df.loc['b', 1]
вернет значение во втором столбце (индекс, начинающийся с 0) в строке «b»:
7