Условные операции в кадре данных (если еще) - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть фрейм данных с именем Install_Date. Я хочу присвоить значения другому фрейму данных, называемому age, при двух условиях - если значение в Install_Date равно нулю, то age = current year - plant construct date, если значение не равно нулю, то age = current year - INPUT_Asset["Install_Date"],

Это код, который у меня есть. Первое условие работает нормально, но второе условие все еще дает 0 в качестве значений. :

Plant_Construct_Year = 1975

this_year= 2020

for i in INPUT_Asset["Install_Date"]:

    if i != 0.0:
        INPUT_Asset["Asset_Age"] = this_year- INPUT_Asset["Install_Date"]
    else
        INPUT_Asset["Asset_Age"] = this_year- Plant_Construct_Year

1 Ответ

0 голосов
/ 08 февраля 2020
INPUT_Asset["Install_Date"] = pd.to_numeric(INPUT_Asset["Install_Date"], errors='coerce').fillna(0)

INPUT_Asset["Asset_Age"] = np.where(INPUT_Asset["Install_Date"] ==0.0, this_year- Plant_Construct_Year,INPUT_Asset["Asset_Age"])

INPUT_Asset["Asset_Age"] = np.where(INPUT_Asset["Install_Date"] !=0.0, this_year- INPUT_Asset["Install_Date"],INPUT_Asset["Asset_Age"])

print(INPUT_Asset["Asset_Age"])
...