Загрузка CSV с явными типами и датами через read_csv
Содержание курса
В прошлом уроке DataFrame создавался вручную — из словаря или списка словарей. В реальной работе данные почти всегда приходят из файла, и самый распространённый формат — CSV. Здесь разберём, как pd.read_csv превращает текстовый файл в DataFrame за один вызов.
pd.read_csv: чтение CSV по пути и файловому объекту
Базовый вызов выглядит так:
import pandas as pd
df = pd.read_csv('data/orders.csv')
Первый аргумент filepath_or_buffer — это либо строка с путём к файлу, либо файловый объект. Pandas принимает оба варианта одинаково.
Путь может быть относительным или абсолютным:
# относительный путь
df = pd.read_csv('data/orders.csv')
# абсолютный путь
df = pd.read_csv('/home/user/projects/data/orders.csv')
Вместо пути можно передать любой файловый объект — например, открытый через open() или созданный через io.StringIO (полезно в тестах и при работе с данными из памяти):
import io
csv_text = """id,date,amount,category
1,2024-01-15,99.5,food
2,2024-02-20,150.0,tech
"""
buf = io.StringIO(csv_text)
df = pd.read_csv(buf)
print(df)
В обоих случаях pandas делает одно и то же: читает первую строку файла как заголовок столбцов, а дальше — строки данных.
Типы pandas выводит автоматически, просматривая значения каждого столбца. Числа без дробной части становятся int64, числа с точкой — float64, всё остальное — object (строки). Посмотреть, что получилось:
print(df.dtypes)
# id int64
# date object
# amount float64
# category object
Здесь date — это строка (object), потому что pandas по умолчанию не пытается распознавать даты. Автовывод типов работает хорошо для числовых столбцов, но для дат и столбцов с особыми требованиями к типу нужны явные параметры — они будут следующим шагом.
