Мне нужно быть уверенным, что это работает и что каждая строка считывается и является правильной.
Ошибки, например:
Pandas: ValueError: Целочисленный столбец имеет значения NA в столбце 2
Я пытаюсь привести целое число в библиотеке Pandas Python, но в нем отсутствует значение.
Однако в CSV-файле, который я прочитал, похоже, есть некоторые ошибочные записи, так как они состоят из результатов теста, введенных вручную.
Я читаю с помощью этой команды:
Код: Выделить всё
test = pd.read_csv(
"test.csv",
sep=";",
names=pandasframe_names,
dtype=pandasframe_datatypes,
skiprows=1,
)
Если есть ошибочная запись, мне нужен способ обработать это без потери всей строки.
Итак, вот мой случай:
У меня есть фрейм данных Pandas, который считывает таблицу CSV с 5 столбцами с
заголовками A, B, C, D, E. Первую строку пропускаю с помощью параметра jumprows=1
Код: Выделить всё
pandas_datatypes = {
"A": pd.np.int64,
"B": pd.np.int64,
"C": pd.np.float64,
"D": object,
"E": object,
}
Эти эквивалентны моему dtype, когда я его читаю. Значение dtype=pandas_datatypes
Теперь у меня есть такие записи:
Код: Выделить всё
entry 1: 5; 5; 2.2; pedagogy; teacher (correct)
entry 2: 8; 7.0; 2.2; pedagogy; teacher (incorrect, as second is float instead of int)
entry 3: NA; 5; 2.2; pedagogy; teacher (incorrect, as first value has entered NA as is missing)
entry 4: none; 5; 2.2; pedagogy; teacher (incorrect, as first value has entered none as is missing)
entry 5: 8; 5; 2; pedagogy; teacher (incorrect, as third is int instead of float)
В случае, если есть одна неправильная запись, я не хочу потерять всю строку. Должен ли я ввести NULL? Но тогда мне нужно будет пометить это, чтобы кто-нибудь мог просмотреть это вручную.
Подробнее здесь: https://stackoverflow.com/questions/603 ... n-column-2