Apply_groups
не даст вам то, что я думаю, что вы после, что групповое на макс dt
. Вам нужно было использовать aggs
с макс. На dt
. Групповые функции Кадфа сделали бы все остальное. Чтобы получить ваши значения в datetime64[ms]
, вы используете astype()
и сохраняете его обратно на фрейм данных (очень быстро). См. Мой пример:
import cudf
a = cudf.DataFrame({"col1": [1, 1, 1, 2, 2, 2], "col2": [1, 2, 1, 1, 2, 1], "dt": [10000000, 2000000, 3000000, 100000, 2000000, 40000000]})
a['dt'] = a['dt'].astype('datetime64[ns]')
print(a)
a['dt'] = a['dt'].astype('datetime64[ms]')
print(a)
gdf = a.groupby(["col1", "col2"]).agg({'dt':'max'})
print(gdf.head())
dt
значения столбцов будут отформатированы в интервале 0,1-40 миллисекунд в виде наносекунд с 1 января 1970 года, что даст вам отпечаток
col1 col2 dt
0 1 1 1970-01-01 00:00:00.010000
1 1 2 1970-01-01 00:00:00.002000
2 1 1 1970-01-01 00:00:00.003000
3 2 1 1970-01-01 00:00:00.000100
4 2 2 1970-01-01 00:00:00.002000
5 2 1 1970-01-01 00:00:00.040000
col1 col2 dt
0 1 1 1970-01-01 00:00:00.010
1 1 2 1970-01-01 00:00:00.002
2 1 1 1970-01-01 00:00:00.003
3 2 1 1970-01-01 00:00:00.000
4 2 2 1970-01-01 00:00:00.002
5 2 1 1970-01-01 00:00:00.040
dt
col1 col2
1 1 1970-01-01 00:00:00.010
2 1970-01-01 00:00:00.002
2 1 1970-01-01 00:00:00.040
2 1970-01-01 00:00:00.002