11

datetime 列の中央値を計算して datetime 形式で返す方法はありますか? datetime64[ns] 形式の python で列の中央値を計算したい。以下は、列のサンプルです。

df['date'].head()

0   2017-05-08 13:25:13.342
1   2017-05-08 16:37:45.545
2   2017-01-12 11:08:04.021
3   2016-12-01 09:06:29.912
4   2016-06-08 03:16:40.422

名前: 最新、dtype: datetime64[ns]

私の目的は、中央値を上記の日付列と同じ日時形式にすることです。

np.array への変換を試みました:

median_ = np.median(np.array(df['date']))

しかし、それはエラーをスローします:

TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('<M8[ns]')

int64 に変換してから中央値を計算し、datetime への戻り形式を試行しても機能しません

df['date'].astype('int64').median().astype('datetime64[ns]')
4

3 に答える 3

12

あなたも試すことができますquantile(0.5)

df['date'].astype('datetime64[ns]').quantile(0.5, interpolation="midpoint")
于 2018-02-09T16:06:10.067 に答える
4

あなたは近いです、median()リターン afloatので、それをint最初に変換します:

import math

median = math.floor(df['date'].astype('int64').median())

次にint、日付を表すを次のように変換しますdatetime64

result = np.datetime64(median, "ns") #unit: nanosecond
于 2017-05-10T11:16:32.853 に答える