Данные в реальном мире беспорядочные. Чтобы данные могли использоваться людьми, они должны быть преобразованы и обработаны, чтобы они были очищены и отображены, чтобы они могли предоставить полезную информацию.

Независимо от вашей отрасли, данные меняют способ функционирования организаций. Для правильной работы структурированные данные или информация, доступная для чтения только машинам, должны иметь единообразную структуру.

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

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

Теперь может возникнуть вопрос, как манипулировать данными? Что ж, не существует конкретного способа указать, является ли конкретная процедура обработки данных правильной или неправильной. Поскольку манипулирование данными - это все, что связано с пониманием данных, то какая бы процедура вы ни выполняли для этого, не имеет большого значения.

В этом руководстве мы будем использовать библиотеку python pandas. Используя pandas, вы можете избавиться от проблем с манипуляциями с данными, извлекая, фильтруя и преобразовывая данные в DataFrames, очищая путь для быстрого и надежного анализа данных.

Для тех из вас, кто плохо знаком с пандами. Вот краткое резюме:

Pandas - популярная библиотека анализа данных Python. Он обеспечивает простые в использовании и высокоэффективные структуры данных. Эти структуры данных имеют дело с числовыми или помеченными данными, хранящимися в виде таблиц.

В этом руководстве вы узнаете, как подготовить реальные данные для анализа, и расширите свой опыт, работая с несколькими фреймами данных с помощью pandas. Вы также получите практический опыт комбинирования, объединения и создания визуализаций.

В этом руководстве рассматриваются следующие темы:

Установка
Набор данных
Поместите данные в DataFrame
Сохраните DataFrame
Работа со всем DataFrame
Работа со строками
Работа со столбцами < br /> Пользовательские функции
Очистка набора данных
Объединение / объединение DataFrames и Groupby
Визуализация данных

Примечание. В этом посте мы будем использовать Windows в качестве операционной системы вместе с PyCharm в качестве IDE и Pandas в качестве библиотеки.

Вы можете пропустить следующую часть, если у вас уже установлены Python, PyCharm и Pandas.

Установка

Для начала мы будем использовать PyCharm, то есть Python IDE (интегрированную среду разработки).

PyCharm - это IDE для профессиональных разработчиков. Он создан JetBrains, компанией, известной созданием отличных инструментов для разработки программного обеспечения.

Есть две версии PyCharm:

  • Сообщество - бесплатная версия с открытым исходным кодом, легкая, удобная для Python и научных разработок.
  • Professional - платная версия, полнофункциональная IDE с поддержкой веб-разработки.

PyCharm предоставляет все основные функции, которые должна обеспечивать хорошая IDE: завершение кода, инспекции кода, выделение и исправление ошибок, отладка, система контроля версий и рефакторинг кода. Все эти функции готовы к работе.

Лично мне PyCharm - моя любимая IDE для разработки на Python. Единственная серьезная жалоба, которую я слышал о PyCharm, - это ресурсоемкость. Если у вас есть компьютер с небольшим объемом оперативной памяти (обычно менее 4 ГБ), ваш компьютер может отставать.

Вы можете скачать версию сообщества PyCharm, которая БЕСПЛАТНА и может быть загружена с их официального сайта, и следуйте инструкциям, показанным на видео:

После настройки Python и PyCharm. Установим Pandas.

Чтобы установить Pandas в PyCharm, нажмите «Файл» и перейдите в «Настройки». В разделе "Настройки" выберите ваш проект Python и выберите Python Interpreter.

Вы увидите кнопку +. Нажмите на нее и найдите Панды в поле поиска. Вы увидите пакет Pandas слева и его описание и версию справа.

Выберите pandas, нажмите Install Package слева внизу. Он установит пакеты.

Как проверить установлена ​​панда или нет?

После установки панд в системе вы можете легко проверить, установлены ли панды или нет. Для этого просто используйте следующую команду для проверки. Внутри PyCharm напишите следующий код и запустите программу для получения вывода.

import pandas as pd
print(pd.__version__)

Итак, мы готовы начать учиться.

Набор данных

Наш набор данных называется Twitter US Airline Sentiment и был загружен с Kaggle в виде файла csv. Первоисточником была библиотека Данные Crowdflower для всех. В феврале 2015 года из Twitter были скопированы твиты о каждой крупной авиакомпании США. Затем авторы классифицировали каждый твит как положительный, нейтральный или отрицательный и указали причину отрицательной классификации, а также оценку достоверности присвоенного ярлыка.

14 640 строк и 15 столбцов. Включенные функции: идентификатор твита, настроение, оценка уверенности в настроении, отрицательная причина, уверенность в отрицательной причине, авиакомпания, золото настроений, имя, количество ретвитов, текст твита, координаты твита, время твита, дата твита, местоположение твита и пользователь. часовой пояс.

Поместите свои данные в DataFrame

Загрузить DataFrame из файла CSV

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

print(df)

Сохранение DataFrame

Сохранение DataFrame в файл CSV

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

# Saving the Dataframe after removing the missing values
df.to_csv("D:\Tweets1.csv", encoding='utf-8')

Сохранение DataFrame в словаре Python

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

# Saving a DataFrame to a Python dictionary
dictionary = df.to_dict()

Сохранение DataFrame в строку Python

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

# Saving a DataFrame to a Python string
string = df.to_string()

print(string)

Работа со всем DataFrame

Взгляните на содержимое DataFrame

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

df.info()

Вывод:

<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 14640 entries, 0 to 14639
Data columns (total 15 columns):
 # Column Non-Null Count Dtype 
 — — — — — — — — — — — — — — — 
 0 tweet_id 14640 non-null int64 
 1 airline_sentiment 14640 non-null object 
 2 airline_sentiment_confidence 14640 non-null float64
 3 negativereason 9178 non-null object 
 4 negativereason_confidence 10522 non-null float64
 5 airline 14640 non-null object 
 6 airline_sentiment_gold 40 non-null object 
 7 name 14640 non-null object 
 8 negativereason_gold 32 non-null object 
 9 retweet_count 14640 non-null int64 
 10 text 14640 non-null object 
 11 tweet_coord 1019 non-null object 
 12 tweet_created 14640 non-null object 
 13 tweet_location 9906 non-null object 
 14 user_timezone 9820 non-null object 
dtypes: float64(2), int64(2), object(11)
memory usage: 1.7+ MB

Сводка статистики столбца

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

describe = df.describe()
print(describe)

Чтобы получить доступ к отдельной колонке:

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

describe = df.describe()

# printing individual column details 
print(describe['tweet_id'])

Голова

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

head = df.head(10)
print(head)

Хвост

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

tail = df.tail(10)
print(tail)

Набор данных очистки

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

Напомним, что наш набор данных называется Twitter US Airline Sentiment, в котором содержатся твиты, извлеченные из Twitter о каждой крупной авиакомпании США. Более поздние участники классифицировали каждый твит как положительный, нейтральный или отрицательный и указали причину отрицательной классификации, а также оценку достоверности присвоенного ярлыка.

Поскольку данные основаны на авиакомпании, нам нужно удалить строки, в которых нет названия авиакомпании.

Для записей у нас всего 14 640 строк с 15 столбцами. Включенные функции: идентификатор твита, настроение, оценка уверенности в настроении, отрицательная причина, уверенность в отрицательной причине, авиакомпания, золото настроений, имя, количество ретвитов, текст твита, координаты твита, время твита, дата твита, местоположение твита и пользователь. часовой пояс.

Удаление пустых строк, в которых причина отсутствует, из столбца «отрицательная причина»:

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

#Drop column where data is missing
df = df.dropna(subset=['negativereason'])

print(df)

Общее количество записей теперь уменьшено до 9178 строк.

Есть много столбцов, которые нам больше не нужны в наших данных, например: тон настроения, имя, текст твита, координаты твита, время твита, дата твита, местоположение твита и часовой пояс пользователя.

Удаление ненужных столбцов:

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

#Drop rows where data is missing
df = df.dropna(subset=['negativereason'])

#Dropping columns
df = df.drop(['negativereason_gold','name','tweet_coord','tweet_created','tweet_location','user_timezone'], axis=1)

print(df)

Таким образом, общее количество записей сокращено до 9178 строк с 9 столбцами.

Вы также можете инвертировать, т.е. можете сохранить столбцы:

Сохранение столбцов

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

#Drop rows where data is missing
df = df.dropna(subset=['negativereason'])

#Keeping columns
df = df[['tweet_id','airline_sentiment','airline_sentiment_confidence','negativereason','text','negativereason_confidence','airline','airline_sentiment_gold','retweet_count']]

print(df)

Создание трех наборов данных:

Поскольку у нас есть 3 вида настроений: ПОЛОЖИТЕЛЬНОЕ, ОТРИЦАТЕЛЬНОЕ и НЕЙТРАЛЬНОЕ. Мы можем разделить данные на 3 набора:

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

#Dropping columns
df = df.drop(['negativereason_gold','name','tweet_coord','tweet_created','tweet_location','user_timezone'], axis=1)

df_NEGATIVE = df[df['airline_sentiment']=='negative']
df_POSITIVE = df[df['airline_sentiment']=='positive']
df_NEUTRAL = df[df['airline_sentiment']=='neutral']

Пользовательская функция

Создание нового столбца (функции) с помощью функции:

# Importing libraries
import pandas as pd

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

#Dropping columns
df = df.drop(['negativereason_gold','name','tweet_coord','tweet_created','tweet_location','user_timezone'], axis=1)

# Defined function for getting the tweet character length
def getTweetCharacterLength (row):
   return(len(row['text']))

# Adding the new column with applying function
df['text_length'] = df.apply(getTweetCharacterLength, axis=1)
print(df)

Визуализация данных

Matplotlib - самая популярная библиотека для построения графиков на Python. Это низкоуровневая библиотека с интерфейсом, подобным Matlab, которая предлагает большую свободу за счет необходимости писать больше кода.

Matplotlib особенно хорош для создания базовых графиков, таких как линейные диаграммы, гистограммы, гистограммы и многие другие. Его можно импортировать, набрав:

import matplotlib.pyplot as plt

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

Гистограмма

# Importing libraries
import pandas as pd
import matplotlib.pyplot as plt

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

#Dropping columns
df = df.drop(['negativereason_gold','name','tweet_coord','tweet_created','tweet_location','user_timezone'], axis=1)

# Defined function for getting the tweet character length
def getTweetCharacterLength (row):
   return(len(row['text']))

# Adding the new column with applying function
df['text_length'] = df.apply(getTweetCharacterLength, axis=1)


print(df["text_length"])

df['text_length'].hist()
plt.show()

Вы можете увидеть, насколько легко построить гистограмму для столбца text_length с использованием фрейма данных Pandas. Результат выполнения сценария выше выглядит следующим образом:

Гистограмма

Предположим, мы хотим знать частоту сантиментов и хотим построить график так, чтобы мы могли легко визуализировать.

Чтобы получить частоту, мы будем использовать:

df['airline_sentiment'].value_counts()

Позже, чтобы построить его на гистограмме, мы объединим его:

# Importing libraries
import pandas as pd
import matplotlib.pyplot as plt

# Making a list of missing value types
missing_values = ["n/a", "na", "--", ".", ""]
df = pd.read_csv("D:\Tweets.csv", na_values = missing_values)

#Dropping columns
df = df.drop(['negativereason_gold','name','tweet_coord','tweet_created','tweet_location','user_timezone'], axis=1)

# Describing your Column Data
print(df["airline_sentiment"].describe())

# Getting frequency plot
fig, ax = plt.subplots()
df['airline_sentiment'].value_counts().plot(ax=ax, kind='bar')
plt.show()

Вы можете увидеть, насколько просто построить гистограмму частоты появления столбца Airlines_sentiment с использованием фрейма данных Pandas. Результат выполнения сценария выше выглядит следующим образом:

Таким образом, визуализируя данные об настроениях авиакомпаний, мы можем ясно увидеть, что большинство клиентов писали в Твиттере негативные и негативные настроения.

Что еще

Вот несколько дополнительных ресурсов, которые вы можете изучить и попрактиковаться:









Если вам понравился этот пост ... для меня было бы много значить, если бы вы могли щелкнуть значок «хлопки» ... разрешено до 50 хлопков - Спасибо!