Чтобы панды не интерпретировали строку «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()
, чтобы применить ее к определенным столбцам.