Чтобы панды не интерпретировали строку «na» как NaN (а не число), вы можете использовать различные методы. Вот несколько подходов с примерами кода:
Метод 1. Укажите значение na во время read_csv()
import pandas as pd
df = pd.read_csv('data.csv', na_values=['na'])
В этом методе вы предоставляете список ['na']для параметра na_valuesфункции read_csv(). Это указывает пандам обрабатывать строку «na» как NaN при чтении файла CSV.
Метод 2. Используйте параметр Keep_default_na
import pandas as pd
df = pd.read_csv('data.csv', keep_default_na=False, na_values=[''])
Установив для keep_default_naзначение False, вы даете пандам указание не интерпретировать какие-либо значения NaN по умолчанию. Затем вы можете явно определить «na» как NaN, включив его в список na_values.
Метод 3. Замените «na» другим заполнителем
import pandas as pd
df = pd.read_csv('data.csv')
df.replace('na', 'placeholder', inplace=True)
При таком подходе вы можете прочитать CSV-файл как обычно, а затем заменить все вхождения «na» другим значением-заполнителем, используя метод replace().
Метод 4. Используйте специальную функцию конвертера
import pandas as pd
def na_converter(val):
if val == 'na':
return None
return val
df = pd.read_csv('data.csv', converters={'column_name': na_converter})
Здесь вы определяете пользовательскую функцию конвертера na_converter(), которая проверяет, является ли значение «na», и соответственно возвращает None (или любое другое желаемое значение). Затем вы передаете эту функцию конвертера параметру convertersфункции read_csv(), чтобы применить ее к определенным столбцам.