Как считать данные из CSV файла на Python с помощью Pandas?

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 и базы данных, что делает ее универсальной библиотекой для аналитики данных.

Полезные ресурсы


Добавить комментарий