Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2020 15:03:36

Volodya
Зарегистрирован: 2020-02-13
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление 'nan' в pandas

Здравствуйте!

Как удалить из массива pandas значения ‘nan’?
Пробую так, не срабатывает:

 dataset_xl_O =pd.read_excel('E:/Gidrolodge_.xlsx', sheet_name='O')
dataset_xl_Or =pd.read_excel('E:/Gidrolodge_.xlsx', sheet_name='Or')
dataset_xl_I =pd.read_excel('E:/Gidrolodge_.xlsx', sheet_name='I')
dataset_xl = pd.concat([dataset_xl_O, dataset_xl_Or, dataset_xl_I])
X_ = dataset_xl[['L', 'C', 'D']].values
X=pd.DataFrame(X_)
X.fillna(0)

Отредактировано Volodya (Март 9, 2020 18:54:28)

Офлайн

#2 Март 11, 2020 18:30:53

Vladimirv
Зарегистрирован: 2013-03-22
Сообщения: 108
Репутация: +  7  -
Профиль   Отправить e-mail  

Удаление 'nan' в pandas

От нан можно избавиться несколькими способами, удалить строку/столбец с нан или обычно заменить нан на нуль(или еще что-то).

 df.fillna(0) # на 0
Удаляют с помощью .drop(), ищут что удалять например через .isna().

Офлайн

#3 Март 12, 2020 13:06:41

Volodya
Зарегистрирован: 2020-02-13
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление 'nan' в pandas

Vladimirv
Удаляют с помощью .drop(), ищут что удалять например через .isna().
Да через неё и сделал:
 def Not_Nane_str(dataset):
    mask = dataset.isna()
    for i in range(0,len(dataset)):
        for j in range(0,len(dataset.iloc[i])):
            if (mask.iat[i, j]) == True:
                dataset.iat[i, j]=float(0)
            elif dataset.iat[i, j]=='-':
                  dataset.iat[i, j]=0                  
            else: dataset.iat[i, j]=float(str(dataset.iat[i, j]).replace(',','.').replace(' ',''))
            
    return dataset

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version