DatetimeIndex无法对熊猫系列执行操作中位数

时间:2020-07-07 06:13:13

标签: python pandas

在计算系列中位数时,我看到错误“ DatetimeIndex无法执行操作中位数”。 有什么建议吗?谢谢。

下面是复制代码。

import pandas as pd
import numpy as np

df = pd.DataFrame({'a': pd.date_range("2012", periods=3, freq='D')}) 
df['a'].median() 
...
TypeError: DatetimeIndex cannot perform the operation median 

1 个答案:

答案 0 :(得分:2)

仅当将列转换为本地unix时间格式,获取中位数并转换回日期时间时,才有可能:

df = pd.DataFrame({'a': pd.date_range("2012", periods=3, freq='D')}) 
m = np.median(df['a'].to_numpy().astype(np.int64)) 
print (pd.Timestamp(m))
2012-01-02 00:00:00

详细信息

print (df['a'].to_numpy().astype(np.int64))
[1325376000000000000 1325462400000000000 1325548800000000000]

另一个想法,谢谢@ cs95:

print (pd.Timestamp(df['a'].astype(np.int64).median()))
2012-01-02 00:00:00