Лабораторная работа 6 Индексаци, сортировка и фильтрация



бет10/10
Дата14.10.2023
өлшемі184.93 Kb.
#480761
түріЛабораторная работа
1   2   3   4   5   6   7   8   9   10
Лабораторная работа 6 Анализ данных

Таблица 5.6. Способы обработки связанных рангов




DataFrame умеет вычислять ранги как по строкам, так и по столбцам:


In [219]: frame = pd.DataFrame({'b': [4.3, 7, –3, 2], 'a': [0, 1, 0, 1],


.....: 'c': [–2, 5, 8, –2.5]})
In [220]: frame
Out[220]:
a b c
0 0 4.3 –2.0
1 1 7.0 5.0
2 0 –3.0 8.0
3 1 2.0 –2.5

In [221]: frame.rank(axis='columns')


Out[221]:
a b c
0 2.0 3.0 1.0
1 1.0 3.0 2.0
2 2.0 1.0 3.0
3 2.0 3.0 1.0


Индексы по осям с повторяющимися значениями
Во всех рассмотренных до сих пор примерах метки на осях (значения индекса) были уникальны. Хотя для многих функций pandas (например, reindex) требуется уникальность меток, в общем случае это необязательно. Рассмотрим небольшой объект Series с повторяющимися значениями в индексе:

In [222]: obj = Series(range(5), index=['a', 'a', 'b', 'b', 'c'])


In [223]: obj
Out[223]:
a 0
a 1
b 2
b 3
c 4

О том, являются значения уникальными или нет, можно узнать, опросив свойство is_unique:


In [224]: obj.index.is_unique


Out[224]: False

Выборка данных – одна из основных операций, поведение которых меняется в зависимости от наличия или отсутствия дубликатов. При доступе по индексу, встречающемуся несколько раз, возвращается объект Series, если же индекс одиночный, то скалярное значение:


In [225]: obj['a']
Out[225]:
a 0
a 1
dtype: int64
In [226]: obj['c']
Out[226]: 4

Это иногда усложняет код, поскольку тип, получающийся в результате индексирования, может зависеть от того, повторяется метка или нет.Такое же правило действует и для доступа к строкам в DataFrame:


In [227]: df = DataFrame(np.random.randn(4, 3), index=['a', 'a', 'b', 'b'])


In [228]: df
Out[228]:
0 1 2
a 0.274992 0.228913 1.352917
a 0.886429 –2.001637 –0.371843
b 1.669025 –0.438570 –0.539741
b 0.476985 3.248944 –1.021228

In [229]: df.ix['b']


Out[229]:
0 1 2
b 1.669025 –0.438570 –0.539741
b 0.476985 3.248944 –1.021228

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет