Рубрики
Без рубрики

Серия и DataFrame в Python

Автор оригинала: FreeCodeCapm Team.

Шуби Астхана

Пару месяцев назад я взял онлайн-курс «Использование Python для исследований», предлагаемых Гарвардским университетом на EDX. Принимая курс, я узнал много концепций Python, Numpy, Matplotlib и Pyplot. У меня также была возможность работать над тематическим исследованиям в ходе этого курса и смогла использовать свои знания о фактических данных. Для получения дополнительной информации об этой программе проверьте здесь Отказ

Я узнал два важных концепция в этом курсе – серии и DataFrame. Я хочу представить это вам через короткое руководство.

Чтобы начать с учебника, давайте получим последний исходный код Python с официального сайта здесь Отказ

После установки Python вы будете использовать графический интерфейс пользователя под названием Холостой работать с Python.

Давайте импортируем Pandas на наше рабочее пространство. Пандас это библиотека Python, которая предоставляет структуры данных и инструменты анализа данных для различных функций.

Ряд

Серия – это одномерный объект, который может удерживать любой тип данных, такой как целые числа, поплавки и строки. Давайте возьмем список элементов в качестве входного аргумента и создайте объект серии для этого списка.

>>> import pandas as pd
>>> x = pd.Series([6,3,4,6])
>>> x
0 6
1 3
2 4
3 6
dtype: int64

Этикетки оси для данных, как указано в качестве индекса. Длина индекса должна быть такой же, как продолжительность данных. Поскольку мы не прошли ни один индекс в коде выше, индекс по умолчанию будет создан со значениями [0, 1, ... len (данные) -1]

Давайте пойдем вперед и определите индексы для данных.

>>> x = pd.Series([6,3,4,6], index=['a', 'b', 'c', 'd'])
>>> x
a 6
b 3
c 4
d 6
dtype: int64

Индекс в левом большинстве столбцов теперь относится к данным в правом столбце.

Мы можем найти данные, ссылаясь на свой индекс:

>>> x["c"]
4

Python дает нам соответствующие данные для индекса.

Одним из примеров типа данных является словарь, определенный ниже. Индекс и значения коррелируют к ключам и значениям. Мы можем использовать индекс для получения значений данных, соответствующих меткам в индексе.

>>> data = {'abc': 1, 'def': 2, 'xyz': 3}
>>> pd.Series(data)
abc 1
def 2
xyz 3
dtype: int64

Еще одна интересная функция в серии имеет данные как скалярное значение. В этом случае значение данных повторяется для каждого из определенных индексов.

>>> x = pd.Series(3, index=['a', 'b', 'c', 'd'])
>>> x
a 3
b 3
c 3
d 3
dtype: int64

Dataframe.

DataFrame – это двумерный объект, который может иметь столбцы с потенциальными различными типами. Различные виды входов включают словари, списки, серии и даже другое dataframe.

Это наиболее часто используемые объект Pandas.

Давайте пойдем вперед и создадим dataframe, передавая nampy массив с dateTime в качестве индексов и помеченных столбцов:

>>> import numpy as np
>>> dates = pd.date_range('20170505', periods = 8)
>>> dates
DatetimeIndex(['2017–05–05', '2017–05–06', '2017–05–07', '2017–05–08',
'2017–05–09', '2017–05–10', '2017–05–11', '2017–05–12'],
dtype='datetime64[ns]', freq='D')
>>> df = pd.DataFrame(np.random.randn(8,3), index=dates, columns=list('ABC'))
>>> df
A B C
2017–05–05 -0.301877 1.508536 -2.065571
2017–05–06 0.613538 -0.052423 -1.206090
2017–05–07 0.772951 0.835798 0.345913
2017–05–08 1.339559 0.900384 -1.037658
2017–05–09 -0.695919 1.372793 0.539752
2017–05–10 0.275916 -0.420183 1.744796
2017–05–11 -0.206065 0.910706 -0.028646
2017–05–12 1.178219 0.783122 0.829979

Датафарам с диапазоном DateTime 8 дней создается, как показано выше. Мы можем просмотреть верхние и нижние ряды кадра, используя df.head и df.tail :

>>> df.head()
A B C
2017–05–05 -0.301877 1.508536 -2.065571
2017–05–06 0.613538 -0.052423 -1.206090
2017–05–07 0.772951 0.835798 0.345913
2017–05–08 1.339559 0.900384 -1.037658
2017–05–09 -0.695919 1.372793 0.539752
>>> df.tail()
A B C
2017–05–08 1.339559 0.900384 -1.037658
2017–05–09 -0.695919 1.372793 0.539752
2017–05–10 0.275916 -0.420183 1.744796
2017–05–11 -0.206065 0.910706 -0.028646
2017–05–12 1.178219 0.783122 0.829979

Мы можем наблюдать быструю статистическую резюме наших данных тоже:

>>> df.describe()
A B C
count 8.000000 8.000000 8.000000
mean 0.372040 0.729842 -0.109691
std 0.731262 0.657931 1.244801
min -0.695919 -0.420183 -2.065571
25% -0.230018 0.574236 -1.079766
50% 0.444727 0.868091 0.158633
75% 0.874268 1.026228 0.612309
max 1.339559 1.508536 1.744796

Мы также можем применять функции в таких данных, как совокупная сумма, просмотр гистограмм, объединения данных данных, объединение и изменение данных данных.

>>> df.apply(np.cumsum)
A B C
2017–05–05 -0.301877 1.508536 -2.065571
2017–05–06 0.311661 1.456113 -3.271661
2017–05–07 1.084612 2.291911 -2.925748
2017–05–08 2.424171 3.192296 -3.963406
2017–05–09 1.728252 4.565088 -3.423654
2017–05–10 2.004169 4.144905 -1.678858
2017–05–11 1.798104 5.055611 -1.707504
2017–05–12 2.976322 5.838734 -0.877526

Вы можете прочитать подробную информацию об этих структурах данных здесь Отказ