У меня есть фрейм данных,
Software Product Case Number Num of days
MDM9607.LE.1.0 2774904 -19.13888889
MDM9607.LE.1.0 2774203 -19.60069444
MDM9607.LE.1.0 2768088 -24.81597222
MDM9607.LE.1.0 2767500 -25.0125
MDM9607.LE.1.0 2764617 -26.67916667
MDM9607.LE.1.0 2766991 -25.17430556
MDM9607.LE.1.0 2765696
MDM9607.LE.1.0 2764204
MDM9607.LE.1.0 2764199
MDM9607.LE.1.0 2774434 365
MDM9607.LE.1.0 2769029 377
MDM9607.LE.1.0 2764195 380
MDM9607.LE.1.0 2763721 25
MDM9607.LE.1.0 2770456 380
MDM9607.LE.1.0 2768423
Требуемые условия вывода:
If:
f9['Num of days'] > 365 than print L
f9['Num of days'] < 365 than print N
f9['Num of days'] == NaN than print U
Код:
import pandas as pd
import numpy as np
df1 = pd.read_excel(r"Rawreport_2017.xlsx")
df2 = pd.read_excel(r"Sampleswpl.xlsx")
f9 = pd.merge(df1, df2, on=['Software Product'], how='outer')
f9.to_excel(r"merge_new_1.xlsx")
f9['Num of days'] = f9['Date/Time Opened'] - f9['CSDate']
f9['Num of days_u']=f9['Num of days'].fillna('u')
f9['status'] = np.where(f9['Num of days'] > 365, 'L', 'NL','u')
f9.to_excel(r"merge_status_5.xlsx")
Я использую Dataframe, который содержит некоторые пропущенные значения, что пропущенные значения должны быть напечатаны как Неизвестные, но я придерживаюсь определенной логики, если столбец больше 365, тогда он должен быть напечатан как "L" <365 должен быть напечатан как "N ", но это недостающее значение также рассматривается как 0 (ноль) и печатается как" N ". </p>
Ожидаемый результат должен быть
Software Product Case Number Num of days Status
MDM9607.LE.1.0 2774904 -19.13888889 N
MDM9607.LE.1.0 2774203 -19.60069444 N
MDM9607.LE.1.0 2768088 -24.81597222 N
MDM9607.LE.1.0 2767500 -25.0125 N
MDM9607.LE.1.0 2764617 -26.67916667 N
MDM9607.LE.1.0 2766991 -25.17430556 N
MDM9607.LE.1.0 2765696 U
MDM9607.LE.1.0 2764204 U
MDM9607.LE.1.0 2764199 U
MDM9607.LE.1.0 2774434 365 L
MDM9607.LE.1.0 2769029 377 L
MDM9607.LE.1.0 2764195 380 L
MDM9607.LE.1.0 2763721 25 N
MDM9607.LE.1.0 2770456 380 L
Я использовал выше, но я получил:
TypeError: where() takes at most 3 arguments (4 given)