Поиск…


Использование .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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow