Pandas — это мощная и гибкая библиотека Python для анализа и манипуляции данными. Она предоставляет структурированные данные высокого уровня, такие как DataFrame и Series, которые позволяют легко и эффективно выполнять множество операций над данными. CSV (Comma-Separated Values) файлы часто используются в аналитике данных из-за их простоты и человеческой читаемости. В этой статье мы рассмотрим, как считать данные из CSV файла с помощью Pandas и обрабатывать их.
Установка и импорт библиотеки Pandas
Установка Pandas
Прежде чем начать работу с Pandas, убедитесь, что библиотека установлена. Для установки используйте команду pip:
pip install pandas
Эта команда скачает и установит последнюю версию Pandas.
Импортирование библиотеки
После установки нужно импортировать Pandas в ваш проект. Обычно библиотека импортируется под сокращенным именем pd для удобства:
import pandas as pd
Импортируя библиотеку таким способом, вы будете использовать пространство имен pd для обращения к методам и функциям Pandas.
Чтение данных из CSV файла
Метод read_csv
Метод read_csv является основным способом чтения данных из CSV файлов в Pandas. Он поддерживает множество параметров, позволяющих гибко настраивать процесс чтения данных.
Пример базового использования:
import pandas as pd
from typing import Any
# Read CSV file
def read_csv_file(file_path: str) -> pd.DataFrame:
"""
Reads a CSV file and returns a DataFrame.
:param file_path: Path to the CSV file.
:return: DataFrame with the CSV data.
"""
df: pd.DataFrame = pd.read_csv(file_path)
return df
В этом примере мы создаем функцию read_csv_file, которая принимает путь к файлу и возвращает DataFrame, содержащий данные из CSV файла.
Пример работы с CSV файлом
Давайте рассмотрим, как это работает на практике. Предположим, у нас есть CSV файл data.csv со следующими данными:
name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago
Код для чтения этого файла и вывода данных на экран будет выглядит следующим образом:
import pandas as pd
from typing import Any
# Read CSV file and display contents
def display_csv_data(file_path: str) -> None:
"""
Reads a CSV file and displays its data.
:param file_path: Path to the CSV file.
"""
df: pd.DataFrame = pd.read_csv(file_path)
print(df)
# Call the function
display_csv_data('data.csv')
При выполнении этой функции мы увидим такой вывод:
name age city
0 Alice 30 New York
1 Bob 25 Los Angeles
2 Charlie 35 Chicago
Обработка данных после считывания
Просмотр первых строк данных
После считывания данных из CSV файла, полезно просмотреть первые несколько строк для получения представления о содержимом. Для этого используется метод head:
import pandas as pd
from typing import Any
# Display first N rows of DataFrame
def display_head(file_path: str, n: int = 5) -> None:
"""
Displays the first N rows of a DataFrame.
:param file_path: Path to the CSV file.
:param n: Number of rows to display.
"""
df: pd.DataFrame = pd.read_csv(file_path)
print(df.head(n))
# Call the function
display_head('data.csv')
Этот код выведет первые 5 строк данных (по умолчанию).
Проверка структуры данных
Для более детального понимания структуры данных можно использовать методы info и describe:
import pandas as pd
from typing import Any
# Display DataFrame info and statistics
def display_info(file_path: str) -> None:
"""
Displays the structure and basic statistics of a DataFrame.
:param file_path: Path to the CSV file.
"""
df: pd.DataFrame = pd.read_csv(file_path)
# Display DataFrame structure
df.info()
# Display DataFrame statistics
print(df.describe())
# Call the function
display_info('data.csv')
Метод info покажет информацию о типах данных и количестве не-null значений, а метод describe — базовую статистику числовых колонок.
Фильтрация и группировка данных
Фильтрация данных
Фильтрация позволяет выбрать строки, соответствующие определенным критериям. Допустим, мы хотим выбрать всех людей старше 30 лет:
import pandas as pd
from typing import Any
# Filter DataFrame by age
def filter_by_age(file_path: str, age_threshold: int) -> pd.DataFrame:
"""
Filters rows where the age is greater than the specified threshold.
:param file_path: Path to the CSV file.
:param age_threshold: Age threshold for filtering.
:return: Filtered DataFrame.
"""
df: pd.DataFrame = pd.read_csv(file_path)
filtered_df: pd.DataFrame = df[df['age'] > age_threshold]
return filtered_df
# Call the function and display result
filtered_df: pd.DataFrame = filter_by_age('data.csv', 30)
print(filtered_df)
Группировка и агрегация данных
Группировка данных позволяет агрегировать их по определенному признаку. Рассмотрим группировку по городам и вычислим средний возраст:
import pandas as pd
from typing import Any
# Group DataFrame by city and compute average age
def group_by_city(file_path: str) -> pd.DataFrame:
"""
Groups data by city and calculates average age.
:param file_path: Path to the CSV file.
:return: DataFrame with grouped data.
"""
df: pd.DataFrame = pd.read_csv(file_path)
grouped_df: pd.DataFrame = df.groupby('city')['age'].mean().reset_index()
return grouped_df
# Call the function and display result
grouped_df: pd.DataFrame = group_by_city('data.csv')
print(grouped_df)
Сохранение обработанных данных
Метод to_csv
После обработки данных, их часто нужно сохранить обратно в CSV файл. Для этого используется метод to_csv:
import pandas as pd
from typing import Any
# Save DataFrame to CSV file
def save_to_csv(df: pd.DataFrame, file_path: str) -> None:
"""
Saves a DataFrame to a CSV file.
:param df: DataFrame to save.
:param file_path: Path to the output CSV file.
"""
df.to_csv(file_path, index=False)
# Creating a sample DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [30, 25, 35],
'city': ['New York', 'Los Angeles', 'Chicago']
}
sample_df = pd.DataFrame(data)
# Call the function to save the DataFrame
save_to_csv(sample_df, 'output.csv')
Проверка сохраненного файла
Чтобы убедиться, что данные были сохранены корректно, можно прочитать файл обратно и вывести его содержимое:
import pandas as pd
from typing import Any
# Read and display the saved CSV file
def display_saved_csv(file_path: str) -> None:
"""
Reads and displays a saved CSV file.
:param file_path: Path to the CSV file.
"""
df: pd.DataFrame = pd.read_csv(file_path)
print(df)
# Call the function
display_saved_csv('output.csv')
Заключение
Мы рассмотрели основы использования библиотеки Pandas для чтения, обработки и сохранения данных из CSV файлов. Работа с Pandas позволяет эффективно манипулировать данными для анализа и построения отчетов. Pandas также поддерживает работу с другими форматами данных, такими как Excel, JSON и базы данных, что делает ее универсальной библиотекой для аналитики данных.
Полезные ресурсы
- Официальная документация Pandas
- Курс по Pandas на DataCamp
- Книги по Python и аналитику данных
- «Python for Data Analysis» by Wes McKinney
- «Pandas Cookbook» by Theodore Petrou