Как посчитать пустые и заполненные ячейки в каждом столбце файла .csv?

Вопрос или проблема

Как посчитать пустые и заполненные ячейки в каждом столбце файла .csv?

Я хочу посчитать заполненные и пустые ячейки в каждом столбце .csv файла.

Вот мой код:

import pandas as pd

file_path = r"C:\Users\andre\OneDrive\Documentos\Farmácia\Python\Cadastro_clientes\cadastro_cli.csv"  
df = pd.read_csv(file_path, sep='|', header=None)  # Без аргумента names, читаем все столбцы

filled_counts = df.count()  # Считаем ненулевые записи для всех столбцов
blank_counts = df.isnull().sum()  # Считаем нулевые (пустые) записи для всех столбцов

summary = pd.DataFrame({
    'Filled': filled_counts,
    'Blank': blank_counts
})

print("\nКоличество заполненных и пустых ячеек:")
print(summary)

Я получаю только это, что вовсе не то, что я хотел:

Количество заполненных и пустых ячеек:
   Filled  Blank
0   22318      0

Я использую Jupyter notebook. Любая помощь или советы будут очень полезны!

Кроме того, я полный новичок в pandas и Python в целом. Извините за мой английский.

Ваш код правильный! Я думаю, что проблема может быть в вашем csv файле. Можете сделать print(df.head()) и показать результат?

Ответ или решение

Конечно! Давайте разберем вашу задачу более подробно и попробуем найти решение.

Вопрос: Как посчитать пустые и заполненные ячейки в каждом столбце .csv файла?

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

Вот как можно модифицировать ваш код и диагностировать проблему:

Шаг 1: Убедитесь, что файл загружается правильно.

Иногда проблемы могут возникать из-за формата или структуры данных в .csv файле. Попробуйте использовать print(df.head()), чтобы увидеть первые несколько строк вашего DataFrame:

import pandas as pd

file_path = r"C:\Users\andre\OneDrive\Documentos\Farmácia\Python\Cadastro_clientes\cadastro_cli.csv"  
df = pd.read_csv(file_path, sep='|', header=None)

# Вывод первых строк DataFrame
print(df.head())

Шаг 2: Подсчет ячеек

Если данные загружаются корректно, ваш код для подсчета будет выглядеть следующим образом:

# Подсчет заполненных ячеек в каждой колонке
filled_counts = df.count()

# Подсчет пустых ячеек в каждой колонке (с учетом того, что пустые строки могут быть пустыми строками, а не NaN)
blank_counts = df.isnull().sum() + (df == '').sum()  # прибавляем пустые строки

# Создание итоговой таблицы
summary = pd.DataFrame({
    'Filled': filled_counts,
    'Blank': blank_counts
})

print("\nCounts of Filled and Blank Cells:")
print(summary)

Шаг 3: Проверка данных на наличие пустых строк

Если вы всё еще получаете неожиданные результаты, возможно, в вашем .csv файле есть строки, которые выглядят пустыми, но на самом деле содержат пробелы или другие невидимые символы. Вы можете очистить данные от таких элементов:

# Убираем пробелы в начале и в конце строк из DataFrame
df = df.applymap(lambda x: x.strip() if isinstance(x, str) else x)

# Теперь повторим подсчет
filled_counts = df.count()
blank_counts = df.isnull().sum() + (df == '').sum()

summary = pd.DataFrame({
    'Filled': filled_counts,
    'Blank': blank_counts
})

print("\nCounts of Filled and Blank Cells after cleaning:")
print(summary)

Итог

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

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

Капча загружается...