python – 带有pandas的日期时间对象意味着功能

我是编程新手,所以如果这个问题没有任何意义,我会事先道歉.
我注意到当我尝试使用如下格式的日期时间对象计算pandas数据帧的平均值时:datetime.datetime(2014,7,10),它无法计算它的平均值,但它似乎是能够在没有问题的情况下计算同一数据帧的最小值和最大值.

d={'one' : Series([1, 2, 3], index=['a', 'b', 'c']), 'two' :Series([datetime.datetime(2014, 7, 9) , datetime.datetime(2014, 7, 10) , datetime.datetime(2014, 7, 11) ], index=['a', 'b', 'c'])}
df=pd.DataFrame(d)

df
Out[18]: 
      one        two    
   a    1 2014-07-09
   b    2 2014-07-10
   c    3 2014-07-11

df.min()
Out[19]: 
   one             1
   two    2014-07-09
dtype: object

df.mean()
Out[20]: 
   one    2
dtype: float64

我注意到min和max函数将所有列转换为对象,而mean函数输出浮点数.
任何人都可以向我解释为什么平均功能只能处理浮动?
我有另一种方法获取具有日期时间对象的数据框的平均值吗?
我可以通过使用纪元时间(作为整数)来解决它,但如果有直接的方法会很方便.我使用Python 2.7

我很感激任何提示.

解决方法:

您可以使用datetime.timedelta

d={'one' : Series([1, 2, 3], index=['a', 'b', 'c']), 'two' :Series([datetime.datetime(2014, 7, 9) , datetime.datetime(2014, 7, 10) , datetime.datetime(2014, 7, 11) ], index=['a', 'b', 'c'])}
df = pd.DataFrame(d)

def avg_datetime(series):
    dt_min = series.min()
    deltas = [x-dt_min for x in series]
    return dt_min + functools.reduce(operator.add, deltas) / len(deltas)

print(avg_datetime(df['two']))

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...