gpt4 book ai didi

python - 具有 pandas mean 函数的日期时间对象

转载 作者:太空狗 更新时间:2023-10-30 00:27:55 26 4
gpt4 key购买 nike

我是编程新手,所以如果这个问题没有任何意义,我提前道歉。我注意到,当我尝试使用格式如下的日期时间对象计算 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 函数只输出 float 。谁能给我解释一下为什么 mean 函数只能处理 float ?还有另一种方法可以获取带有日期时间对象的数据框的平均值吗?我可以通过使用纪元时间(作为整数)来解决它,但如果有直接的方法会非常方便。我使用 Python 2.7

我很感激任何提示。

最佳答案

为了简化 Alex 的回答(我会添加这个作为评论,但我没有足够的声誉):

import datetime
import pandas as pd

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

看起来像:

   one   two
a 1 2014-07-09
b 2 2014-07-10
c 3 2014-07-11

然后通过以下方式计算“二”列的平均值:

(df.two - df.two.min()).mean() + df.two.min()

因此,减去时间序列的最小值,计算所得时间增量的平均值(或中值),然后加回最小值。

关于python - 具有 pandas mean 函数的日期时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27907902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com