Попрощайтесь с заданиями, выполняемыми вручную, с помощью этого скрипта Python!

Введение:

Правильные инструменты упрощают сложный анализ данных и сокращают процесс. Аналитики данных тратят значительную часть своего времени на классификацию столбцов данных по определенным типам в файлах CSV. Особенно сложно, когда существуют комбинации типов данных.

Задача:

Несогласованность типов данных — одна из причин, по которой файлы CSV могут создавать трудности при манипуляциях. Если вы не обрабатываете данные должным образом, есть вероятность, что анализ будет содержать ошибки, такие как неправильные расчеты и ошибки интерпретации.

Решение:

Используя кодирование Python, можно автоматизировать определение типа данных файла CSV. Экономия времени и усилий, повышение точности. Вот функция Python для определения типа столбца

"""
Python version 3.8
pandas==1.2.1
"""

def guess_column_types(file_path, delimiter=',', has_headers=True):
    try:
        # Read the CSV file using the specified delimiter and header settings
        df = pd.read_csv(file_path, sep=delimiter, header=0 if has_headers else None)

        # Initialize a dictionary to store column data types
        column_types = {}

        # Loop through columns and infer data types
        for column in df.columns:
            # sample_values = df[column].dropna().sample(min(5, len(df[column])), random_state=42)

            # Check for datetime format "YYYY-MM-DD HH:MM:SS"
            is_datetime = all(re.match(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}', str(value)) for value in df[column])

            # Check for date format "YYYY-MM-DD"
            is_date = all(re.match(r'\d{4}-\d{2}-\d{2}', str(value)) for value in df[column])

            # Assign data type based on format detection
            if is_datetime:
                inferred_type = 'datetime64'
            elif is_date:
                inferred_type = 'date'
            else:
                inferred_type = pd.api.types.infer_dtype(df[column], skipna=True)

            column_types[column] = inferred_type

        return (True, column_types)  # Return success and column types
    except pd.errors.ParserError:
        return (False, str(e))  # Return error message

Как это работает:

В Pandas файл CSV сначала читается сценарием Python. Каждый столбец в DataFrame проверяется сценарием на наличие определенных типов данных. В случае смешанных или противоречивых типов данных сценарий берет на себя ответственность, назначая наиболее подходящий тип данных каждому столбцу.

Попробуйте:

Скрипт Python доступен на GitHub. Используйте его в своих начинаниях, скачав его.

Вывод:

Быстрая и простая экономия времени и усилий достигается за счет автоматизации определения типов данных в файлах CSV с помощью Python.

Заключение Получение и интерпретацию результатов становится более управляемым, если сосредоточить на них свое внимание.