Я работаю над созданием функции, которая будет оценивать два условия из фрейма данных и передавать серию предварительно возвращаемых значений с заданными входными данными в фрейм данных, если он встретит NaN.Первое условие, которое я хотел бы иметь, это проверка, является ли значение одного столбца NaN (очевидно), а затем проверка другого столбца, чтобы увидеть, какой ключ назначен идентификатору (1,2,3 и т. Д.),Конечная цель состоит в том, чтобы использовать метод .apply в функции, чтобы заполнить значения NaN значениями из функции обратно в исходный кадр данных или оставить существующие значения (если они есть) в покое.Меня зациклило то, что я впервые написал что-то вроде этого для вызова внутри фрейма данных, и у меня возникла проблема назначения в потоке управления.
Это использует python 3.6.Я попытался поиграть с несколькими формами ниже, но все последовательно выдает мне ту же ошибку типа, что и при попытке применить функцию к кадру данных.Это не фактический фрейм данных, но я быстро объяснил суть проблемы, с которой я столкнулся.
Очевидно, что в функции что-то отключено, но в результате мы бы в идеале обновили значение NaN значением 40
До сих пор я пытался изменить функцию всеми возможными способамиимеет смысл сделать так, чтобы он мог перебирать кадр данных.
import pandas as pd
import numpy as np
frame = {'key' : [1,2,3,4,5],
'height' : [70, 68, 74, 67, 72],
'age' : [29,45,'N/A',51,34]}
frame = pd.DataFrame(frame)
frame.replace('N/A',np.nan)
def age (x):
if (x['age'].isnull()) & (x['key'] == 3):
return x.replace(np.nan, 40)
else:
return x
result = frame.apply(age)
Вот снимок кадра данных, который я хотел бы изменить