Библиотека Pandas: DataFrame, Series, импорт/экспорт данных
Данный материал носит информационно-обучающий характер и не является юридической или финансовой консультацией. Применение полученных знаний на практике требует соблюдения законодательства и этических норм. Ответственность за любые действия, предпринятые на основе информации из курса, лежит на вас.
Pandas — ваш главный инструмент для работы с данными в Python. С ним вы быстро обработаете огромные объёмы информации, что критично для антифрода.
DataFrame: ваш рабочий стол аналитика
Представьте, что вы работаете с таблицей в Excel или базе данных. В Pandas такая таблица называется DataFrame. Это двумерная структура данных: строки и столбцы имеют свои метки.
import pandas as pd
# Создадим простой DataFrame
data = {
'Имя': ['Иван', 'Мария', 'Петр', 'Анна'],
'Возраст': [25, 30, 35, 28],
'Город': ['Москва', 'Санкт-Петербург', 'Казань', 'Москва']
}
df = pd.DataFrame(data)
print(df)
Вывод:
Имя Возраст Город
0 Иван 25 Москва
1 Мария 30 Санкт-Петербург
2 Петр 35 Казань
3 Анна 28 Москва
DataFrame — это не просто таблица. Это мощный объект, который позволяет эффективно выполнять множество операций с данными.
Series: один столбец данных
Series — это одномерная структура данных, по сути, один столбец DataFrame. Думайте о нём как о списке значений с индексом.
# Извлечем столбец 'Возраст' из нашего DataFrame
ages = df['Возраст']
print(ages)
print(type(ages))
Вывод:
0 25
1 30
2 35
3 28
Name: Возраст, dtype: int64
<class 'pandas.core.series.Series'>
Вы можете создать Series и независимо:
s = pd.Series([10, 20, 30, 40], name='Мои_числа')
print(s)
Импорт данных: загружаем информацию
В реальной работе данные редко бывают прямо в коде. Чаще всего они хранятся в файлах. Pandas умеет читать данные из множества источников.
Читаем из CSV
CSV (Comma Separated Values) — один из самых распространённых форматов.
# Создадим фиктивный CSV-файл для примера
csv_content = """id,amount,currency,is_fraud
1,1500,RUB,False
2,25000,USD,True
3,500,RUB,False
4,12000,RUB,True
"""
with open('transactions.csv', 'w', encoding='utf-8') as f:
f.write(csv_content)
# Читаем данные из CSV
transactions_df = pd.read_csv('transactions.csv')
print(transactions_df.head()) # Выведем первые 5 строк
Вывод:
id amount currency is_fraud
0 1 1500 RUB False
1 2 25000 USD True
2 3 500 RUB False
3 4 12000 RUB True
💡 Кодировка файлов: Если при работе с русскими символами видите "кракозябры", попробуйте указать
encoding='cp1251'илиencoding='utf-8'при чтении файла.
Читаем из Excel
Pandas легко работает с файлами Excel (XLSX, XLS).
# Для работы с Excel-файлами может потребоваться установить библиотеку openpyxl:
# pip install openpyxl
# Создадим фиктивный Excel-файл
excel_data = pd.DataFrame({
'Дата': ['2024-01-01', '2024-01-02'],
'Сумма': [1000, 2000],
'Статус': ['Одобрено', 'Отклонено']
})
excel_data.to_excel('reports.xlsx', index=False) # index=False чтобы не записывать индекс в файл
# Читаем данные из Excel
reports_df = pd.read_excel('reports.xlsx')
print(reports_df.head())
Вывод:
Дата Сумма Статус
0 2024-01-01 1000 Одобрено
1 2024-01-02 2000 Отклонено
Экспорт данных: сохраняем результаты
Обработали и проанализировали данные? Сохраните результаты!
Экспорт в CSV
# Сохраним наш DataFrame transactions_df в новый CSV-файл
transactions_df.to_csv('processed_transactions.csv', index=False)
# index=False предотвращает запись индекса DataFrame как отдельного столбца в CSV
print("Данные сохранены в processed_transactions.csv")
Экспорт в Excel
# Сохраним DataFrame reports_df в новый Excel-файл
reports_df.to_excel('processed_reports.xlsx', index=False)
print("Данные сохранены в processed_reports.xlsx")
Практическое задание
- Создайте DataFrame с информацией о нескольких подозрительных транзакциях. Включите столбцы:
transaction_id,user_id,amount,currency,timestamp(время транзакции),fraud_score(оценка подозрительности от 0 до 100). - Сохраните этот DataFrame в CSV-файл под названием
suspicious_transactions.csv. - Прочитайте этот же файл обратно в новый DataFrame, чтобы убедиться, что данные сохранились корректно.
Pandas значительно упрощает и ускоряет работу с данными. В следующем разделе мы углубимся в очистку и трансформацию данных — ключевой навык для любого антифрод-исследователя.