Python用于计算多列的datetime平均值

Python用于计算多列的datetime平均值,python,pandas,datetime,Python,Pandas,Datetime,给出如下示例表df,如何计算TIME1、TIME2、TIME3的平均日期。 df['AVG_TIME'] = df[['TIME1', 'TIME2', 'TIME3']].mean(axis=1) 这将返回NaN值 ID TIME1 TIME2 TIME3 0 2018-07-11 2018-07-09 2018-07-12 1 2018-07-12 2018-06-12 2018-07-15 2 2018-07-13 2018-06-13 2018-

给出如下示例表
df
,如何计算
TIME1、TIME2、TIME3的平均日期。

df['AVG_TIME'] = df[['TIME1', 'TIME2', 'TIME3']].mean(axis=1)
这将返回
NaN

ID  TIME1   TIME2   TIME3 
0   2018-07-11  2018-07-09  2018-07-12 
1   2018-07-12  2018-06-12  2018-07-15 
2   2018-07-13  2018-06-13  2018-08-03 
3   2019-09-11  2019-08-11  2019-09-01 
4   2019-09-12  2019-08-12  2019-09-15 

这可以通过以下方式实现:

导入时间
导入日期时间
作为pd进口熊猫
#构建df
c=['TIME1','TIME2','TIME3']
d=['2018-07-11','2018-07-09','2018-07-12'],
['2018-07-12',  '2018-06-12', '2018-07-15'], 
['2018-07-13',  '2018-06-13', '2018-08-03'], 
['2019-09-11',  '2019-08-11', '2019-09-01'],
['2019-09-12',  '2019-08-12', '2019-09-15']]
df=pd.DataFrame(d,columns=c)
#从日期到纪元后秒数的转换(unix时间)
def至_unix:
返回time.mktime(datetime.datetime.strtime,“%Y-%m-%d”).timetuple())
#将历元后的秒数求和,计算平均值,并转换回可读日期
平均数=[]
对于索引,df.iterrows()中的行:
unix=[第i行中的i的to_unix(i)]
平均值=总和(unix)/len(unix)
averages.append(datetime.datetime.utcfromtimestamp(average).strftime(“%Y-%m-%d”))
df[‘平均值’]=平均值

您的列是
datetime
?如何将datetime对象转换为(int64)这样的时间戳,然后计算平均值?超级奇怪的情况是
mean
是为一系列datetime64定义的,而不是为数据帧定义的
df.apply(pd.Series.mean,axis=1)
是一种方法,尽管有一个apply:(.code>df.astype('int64').mean(1).astype('datetime64[ns]'))@ALollz用我的真实数据尝试了你的方法,“TypeError:('DatetimeIndex无法执行操作,平均值,'发生在索引12')”@user3280146它可以工作。我使用了astype(np.int64).mean(axis=1),然后通过pd.to_datetime函数将其转换回datetime。