Вопрос или проблема
Как посчитать пустые и заполненные ячейки в каждом столбце файла .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. Если после проверки и очистки данных у вас все еще возникают проблемы, посмотрите внимательно на содержимое самого файла, возможно, что-то не так с его форматом или структурой.