具有Pandas和Imputer的列中的日期平均值

时间:2018-02-15 18:30:37

标签: python pandas dataframe machine-learning

我的数据集中有一个“日期”列,其中包含缺失值。我想采取该专栏的意思,截至目前我已经尝试过这个:

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])

这给了我一个错误不可用的类型切片。任何人都可以提供他们关于在列中采用日期均值的正确方法的输入吗?

1 个答案:

答案 0 :(得分:0)

采取一系列日期的一种方法是首先转换为朱利安日期。

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

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

mean_date=dat.Julian_date.mean()

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

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))
祝你好运。