Отсутствующие значения в измерении разности периодов времени - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть некоторые метки времени:

df = pd.DataFrame({'t' : [dt.datetime(2016,1,7),float('NaN'),dt.datetime(2016,1,8),float('NaN')],
                   'A' : [0,1,1,1]})

enter image description here

Некоторые из моих значений t - NaT. Я хотел бы изменить A на ноль в строках с NaT, пожалуйста, вот так:

enter image description here

Я пытался:

# Missing values of time
def MVOT(t,A):
    if math.isnan(t):
        return 0
    else:
        return A
MVOT = np.vectorize(MVOT,otypes=[float])
df["A"] = MVOT(df['t'],df['A'])

но я получил:

TypeError: must be real number, not NoneType

1 Ответ

0 голосов
/ 14 февраля 2020

Преобразование времени в число

df['t'] = pd.to_numeric(df.t)

значения NaT преобразуются в отрицательные числа, поэтому:

df.loc[df.t < 0,'A'] = 0

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...