Я работаю над проектом по очистке и обработке больших набор данных с использованием Python и Pandas. Мой текущий код очень медленный и неэффективен для больших наборов данных. Вот упрощенная версия того, что я делаю:
Вот упрощенная версия моего кода:
Код: Выделить всё
import pandas as pd
import time
import requests
from io import BytesIO
from zipfile import ZipFile
# Load the dataset
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/00320/student.zip'
start_time = time.perf_counter()
response = requests.get(url)
with ZipFile(BytesIO(response.content)) as thezip:
with thezip.open('student-mat.csv') as thefile:
df = pd.read_csv(thefile, sep=';')
# Basic data cleaning
df = df.dropna()
df['text'] = df['school'].str.lower()
# Processing step
df['processed_text'] = df['text'].apply(lambda text: text[::-1])
processing_time = time.perf_counter() - start_time
print("Processing time:", processing_time)
print(df.head())
Использовал библиотеку запросов для загрузки zip-файла.
Извлекли содержимое с помощью ZipFile и загрузили CSV-файл в DataFrame.
Очистили данные, удалив строки с отсутствующими значениями.
Преобразовали столбец «школа» в нижний регистр и перевернули текст с помощью лямбда-функции. .
Проблема:
Пока этот код работает, мне нужен совет по дальнейшей оптимизации или улучшению. В частности:
Существуют ли более эффективные методы загрузки и загрузки набора данных?
Как я могу улучшить этапы очистки данных и обработки текста?
Существуют ли какие-либо передовые методы, которым мне следует следовать, чтобы сделать это код станет более эффективным и читабельным?
Чего я ожидаю:
Предложения по улучшению производительности кода. Рекомендации по более эффективной обработке данных. Рекомендации по работе с большими наборами данных и обработке текста в Pandas.
Подробнее здесь: https://stackoverflow.com/questions/786 ... my-current