在计算系列中位数时,我看到错误“ 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
答案 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