【问题标题】:Mean of Date in Column with Pandas and ImputerPandas 和 Imputer 列中的日期平均值
【发布时间】:2018-02-15 18:30:37
【问题描述】:

我的数据集中有一个“日期”列,其中缺少值。我想取该列的平均值,到目前为止我已经尝试过:

from sklearn.preprocessing import Imputer
df = pd.read_csv('train.csv') 
imputer = Imputer(missing_values='Nan',strategy ='mean',axis=0)
imputer=imputer.fit(df[:,16]) 
df[:,16]=imputer.transform(df[:,16])

这给了我一个错误的不可散列类型切片。任何人都可以就在列中取平均日期的正确方法提供意见吗?

【问题讨论】:

标签: python pandas dataframe machine-learning


【解决方案1】:

获取一组日期平均值的一种方法是首先转换为儒略日期。

在 Pandas 中,日期索引数据框可以这样完成:

dat['Julian_date']=dat.index.to_julian_date()

mean_date=dat.Julian_date.mean()

然后您需要将 julian 日期转换回 pandas 日期时间,这并不难。可能有更好的方法,但我制作了一个 hacky 函数,可以将它从儒略日期转换为十进制日期,这对我的目的来说很好:

def decimal_date_from_julian(JD):
    L= JD+68569
    N= 4*L/146097
    L= L-(146097*N+3)/4
    I= 4000*(L+1)/1461001
    L= L-1461*I/4+31
    J= 80*L/2447
    K= L-2447*J/80
    L= J/11
    J= J+2-12*L
    decimal_date= 100*(N-49)+I+L
    return(decimal_date)

print(decimal_date_from_julian(mean_date))

祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 2015-11-13
    • 1970-01-01
    • 2018-02-20
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多