Я начал изучать Data Science, как и все остальные, с создания моей первой модели с использованием техники машинного обучения. Моя первая строка кода была:
import pandas as pd
Помимо милого имени, я не особо обращал внимание на эту библиотеку, но много использовал ее при создании моделей. Вскоре я понял, что недооценивал мощь Pandas, он может делать больше, чем кунг-фу, и это то, что мы собираемся узнать из серии статей, в которых я собираюсь изучить библиотеку Pandas, чтобы получить навыки, которые могут помочь нам анализировать данные. в глубине.
В этой статье мы разберемся
- Как читать данные с помощью Pandas?
- Как хранятся данные?
- Как мы можем получить доступ к данным?
Что такое панды?
Pandas - это библиотека Python для анализа и обработки данных. Тем не менее, панды вращаются вокруг данных. Данные, которые мы читаем через pandas, чаще всего имеют формат , разделенные запятыми или csv.
Как читать данные?
Мы используем метод read_csv () для чтения файла csv, который является первой строкой кода, с которой мы все сталкиваемся, когда начинаем использовать библиотеку Pandas. Не забудьте импортировать панд, прежде чем начинать кодировать.
import pandas as pd titanic_data = pd.read_csv("../Dataset/titanic.csv")
В этой статье мы будем использовать базу данных Титаника, доступ к которой вы можете получить здесь. После чтения данных с помощью pd.read_csv () мы сохраняем их в переменной titanic_data, которая имеет тип Dataframe.
Что такое Dataframe?
Фрейм данных - это сбор данных в строках и столбцах. Технически фреймы данных состоят из отдельных серий . Серии - это просто список данных. Давайте разберемся с некоторым примером кода
#We use pd.Series() to create a series in Pandas >> colors = pd.Series(['Blue','Green']) >> print(colors) output: 0 Blue 1 Green dtype: object >> names_list = ['Ram','Shyam'] >> names = pd.Series(names_list) output: 0 Ram 1 Shyam dtype: object
Мы предоставляем список в качестве параметра методу pd.Series (), который создает серию с индексом. По умолчанию индекс начинается с 0. Однако мы даже можем изменить индекс, поскольку индекс также является серией.
>> index = pd.Series(["One","Two"]) >> colors = pd.Series(['Blue','Green'],index = index) >> print(colors) output: One Blue Two Green dtype: object
Теперь возвращаясь к нашему определению, Dataframe - это набор отдельных серий. Давайте использовать серии цветов и names, которые мы инициализировали выше, для создания фрейма данных.
>> df = pd.DataFrame({"Colors":colors,"Names":names}) >> print(df) output: Colors Names 0 Blue Ram 1 Green Shyam
Мы использовали pd.DataFrame () для создания фрейма данных и передали ему словарь. Ключи этого словаря представляют имя столбца, а значения представляют соответствующие данные для этого столбца, который является серией. Итак, из приведенного выше примера вы можете понять, что Dataframe - это не что иное, как набор серий. Мы также можем изменить индекс Dataframe таким же образом, как и с сериями.
>> index = pd.Series(["One","Two"]) >> colors = pd.Series(['Blue','Green'],index = index) >> names = pd.Series(['Ram','Shyam'],index = index) # Creating a Dataframe >> data = pd.DataFrame({"Colors":colors,"Names":names},index=index) >> print(data) output: Colors Names One Blue Ram Two Green Shyam
До сих пор мы поняли, как мы читаем данные csv и как эти данные представлены. Давайте перейдем к пониманию, как мы можем получить доступ к этим данным.
Как получить доступ к данным из Dataframes?
Есть два способа получить доступ к данным из Dataframes:
- По столбцам
- По строкам
По столбцам
Прежде всего, давайте проверим столбцы в наших данных Титаника.
>> print(titanic_data.columns) output: Index(['Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket','Fare', 'Cabin', 'Embarked'], dtype='object')
Теперь мы можем получить доступ к данным, используя имя столбца двумя способами: используя имя столбца как свойство нашего объекта набора данных или используя имя столбца как индекс нашего объекта набора данных. Преимущество использования имени столбца в качестве индекса заключается в том, что мы можем использовать столбцы с такими именами, как «Имя», «Фамилия», которые невозможно использовать в качестве свойства.
# Using column name as property >> print(titanic_data.Name) output: 0 Braund, Mr. Owen Harris 1 Cumings, Mrs. John Bradley (Florence Briggs Th... 2 Heikkinen, Miss. Laina 3 Futrelle, Mrs. Jacques Heath (Lily May Peel) 4 Allen, Mr. William Henry .... Name: Name, Length: 891, dtype: object # Using column name as index >> print(titanic_data['Name']) output: 0 Braund, Mr. Owen Harris 1 Cumings, Mrs. John Bradley (Florence Briggs Th... 2 Heikkinen, Miss. Laina 3 Futrelle, Mrs. Jacques Heath (Lily May Peel) 4 Allen, Mr. William Henry .... Name: Name, Length: 891, dtype: object >> print(titanic_data['Name'][0]) output: Braund, Mr. Owen Harris
По строкам
Для построчного доступа к данным мы используем такие методы, как loc () и iloc (). Давайте рассмотрим некоторые примеры, чтобы понять эти методы.
# Using loc() to display a row >> print(titanic_data.loc[0]) output: PassengerId 1 Survived 0 Pclass 3 Name Braund, Mr. Owen Harris Sex male Age 22 SibSp 1 Parch 0 Ticket A/5 21171 Fare 7.25 Cabin NaN Embarked S Name: 0, dtype: object # Using iloc() to display a row >> print(titanic_data.iloc[0]) output: same as above >> print(titanic_data.loc[0,'Name']) output: Braund, Mr. Owen Harris >> print(titanic_data.iloc[0,3]) output: same as above
Как мы видели в коде выше, мы обращаемся к строкам, используя их значения индекса, а для дальнейшего перехода к определенному значению в строке мы используем либо имя столбца, либо индекс столбца. Помните, как мы видели ранее, что столбцы также хранятся в виде списка, индекс которого начинается с 0. Итак, первый столбец «PassengerId» присутствует в индексе 0. Помимо этого, мы увидели разницу между методами loc () и iloc (). Оба выполняют одну и ту же задачу, но по-разному.
Мы также можем получить доступ к более чем одной строке одновременно со всеми или некоторыми столбцами. Давайте разберемся, как
# To display whole dataset >> print(titanic_data.loc[:]) # or titanic_data.iloc[:] output: PassengerId Survived Pclass ..... 0 1 0 3 1 2 1 1 2 3 1 3 3 4 1 1 ... [891 rows x 12 columns] # To display first four rows with Name and Ticket >> print(titanic_data.loc[:3,["Name","Ticket"]]) # or titanic_data.iloc[:3,[3,8]] output: Name Ticket 0 Braund, Mr. Owen Harris A/5 21171 1 Cumings, Mrs. John Bradley (Flor... PC 17599 2 Heikkinen, Miss. Laina STON/O2. 3101282 3 Futrelle, Mrs. Jacques Heath.... 113803
Надеюсь, у вас возникла идея использовать методы loc () и iloc (), а также вы поняли разницу между двумя методами. На этом мы подошли к концу статьи. Мы продолжим знакомство с библиотекой Pandas во второй части, но пока продолжаем практиковаться. Удачного кодирования!