Панды заменить Нан с пустой/пустая строка
У меня есть панда Dataframe, как показано ниже:
1 2 3
0 a NaN read
1 b l unread
2 c NaN read
Я хочу удалить значения NaN с пустой строкой, чтобы это выглядело так:
1 2 3
0 a "" read
1 b l unread
2 c "" read
5 ответов:
import numpy as np df1 = df.replace(np.nan, '', regex=True)
Это может помочь. Он заменит все NaNs пустой строкой.
немного короче-это:
df = df.fillna('')
это заполнит na (например, NaN) с ".
изменить: Если вы хотите заполнить один столбец, вы можете использовать:
df.column1 = df.column1.fillna('')
если Вы читаете фрейм данных из файла (скажем, CSV или Excel), то используйте:
df.read_csv(path , na_filter=False)
df.read_excel(path , na_filter=False)
это автоматически будет рассматривать пустые поля как пустые строки ' '
если у вас уже есть фрейм данных
df = df.replace(np.nan, '', regex=True)
df = df.fillna('')
Если вы конвертируете фрейм данных в Json: НАНА будет давать ошибки, поэтому лучше всего в данном случае использовать, чтобы заменить НАН ни с кем. Вот как: df1 = df.где((др.notnull (df)), None)
использовать formmatter. Кроме того, вы не изменяете свой фрейм данных:
df = pd.DataFrame({ 'A': ['a', 'b', 'c'], 'B': [np.nan, 1, np.nan], 'C': ['read', 'unread', 'read']}) print df.to_string( formatters={'B': lambda x: '' if pd.isnull(x) else '{:.0f}'.format(x)})
для:
A B C 0 a read 1 b 1 unread 2 c read