При работе со столбцом даты в фрейме данных panda с очень большими данными я получаю сообщение об ошибке:
ValueError: cannot convert float NaN to integer
при преобразовании даты в день / неделю / месяц / год.Я должен разделить в формате день / неделя / месяц / и подсчитать соответствующие идентификаторы в соответствии с этим.
Ниже процесса я следовал:
Чтобы преобразовать столбец в датуформат:
df1['REQUESTTIMESTAMP'] = pd.to_datetime(df['REQUESTTIMESTAMP'],format= '%d-%b-%y %H.%M.%S.%f')
Для разделения даты в день / неделя / месяц / формат
df1['Day/Week/Month/Year'] = df['REQUESTTIMESTAMP'].apply(lambda x: "%d/%d/%d/%d" % (x.day, x.week, x.month, x.year))
при выполнении этого я получаю ошибку:
`File "<pyshell#333>", line 1, in <lambda>
df1['Day/Week/Month/Year'] = df1['REQUESTTIMESTAMP'].apply(lambda x: "%d/%d/%d/%d" % (x.day, x.week, x.month, x.year))
ValueError: cannot convert float NaN to integer`
Если ошибка исправлена, я должен сгруппировать идентификаторы в соответствии с неделей, месяцем и годом, используя: df1.groupby('Day/Week/Month/Year') ['CONVERSATIONID'].agg(['count', 'nunique'])
Ожидается o/ p:
count nunique
Day/Week/Month/Year
12/41/10/2018 12 12
24/43/10/2018 2 2
30/44/10/2018 3 3
Original input file:
1050 12-OCT-18 17.58.09.822000000<<coming correct
1055 15-OCT-18 17.02.05.512000000<<Nat
1058 15-OCT-18 17.10.55.264000000<<Nat
1061 15-OCT-18 17.12.18.139000000<<Nat
Format of date column in my df coming as Nat:
10 1046 ... 12/40/10/2018
11 1050 ... 12/40/10/2018
12 1055 ... NaT
13 1058 ... NaT
14 1061 ... NaT
15 1064 ... 24/42/10/2018
16 1067 ... 24/42/10/2018
17 1070 ... 30/43/10/2018
18 1073 ... 30/43/10/2018
19 1076 ... 30/43/10/2018
20 1078 ... NaT
21 1081 ... NaT
22 1083 ... NaT
23 1086 ... NaT
24 1089 ... NaT
25 1096 ... NaT
O / P от использования strftime:
df1.groupby('Day/Week/Month/Year') ['CONVERSATIONID'].agg(['count', 'nunique'])
count nunique
Day/Week/Month/Year
12/40/10/2018 12 12
24/42/10/2018 2 2
30/43/10/2018 3 3
NaT 39518 15376
Будет признательна любая помощь в том, как исправить ошибку и дату, поступающую в виде NaT, после преобразования?