python - 如何计算 pandas datetime 对象的均值和方差?

标签 python pandas datetime dataframe summary

如何计算 YYYY-MM-DD 形式的 Python 日期时间对象的汇总统计数据(均值和标准差)?我想对具有不同 ID 的不同日期时间对象组执行此操作。

数据如下:

import datetime as dt

df = pd.DataFrame({
'Date': [dt.date(2017,9,1),dt.date(2017,9,21),dt.date(2017,9,14),
    dt.date(2017,11,7),dt.date(2017,8,1),dt.date(2017,12,21),
    dt.date(2017,12,14),dt.date(2017,10,1),dt.date(2017,10,1)],
'ID': [1,2,3,3,2,1,2,3,2],
})

    Date        ID
    2017-09-01  1
    2017-11-01  2
    2017-09-01  3
    2017-11-07  3
    2017-08-01  2
    2017-11-01  1
    2017-12-01  2
    2017-10-01  3
    2017-10-01  2

我想要一个看起来像这样的结果:

ID_1_mean  ID_1_sd  ID_2_mean   ID_2_sd ...
YYYY-MM-DD int      YYYY-MM-DD  int ...

其中 YYYY-MM-DD 是组 1 中日期的平均值,int 是组 1 中的平均值,对所有组重复。

最佳答案

这是一个有点笨拙的解决方法:

  1. 使用 pd.to_datetime()datetime.date 转换为 pandas.Timestamp
  2. 使用 .astype(int)pandas.Timestamp 转换为整数
  3. 计算这些整数的平均值和标准差
  4. 将均值转换为 pandas.Timestamp
  5. 将 std 转换为 pandas.Timedelta

设置:

df = pd.DataFrame({
'Date': [dt.date(2017,9,1),dt.date(2017,9,21),dt.date(2017,9,14),
    dt.date(2017,11,7),dt.date(2017,8,1),dt.date(2017,12,21),
    dt.date(2017,12,14),dt.date(2017,10,1),dt.date(2017,10,1)],
'ID': [1,2,3,3,2,1,2,3,2],
})

解决方案:

df['Date_int'] = pd.to_datetime(df['Date']).astype(int)
res = df.groupby('ID').agg(['mean', 'std'])
res.columns = ['_'.join(c) for c in res.columns.values]

res['Date_mean'] = pd.to_datetime(res['Date_int_mean'])
res['Date_std'] = pd.to_timedelta(res['Date_int_std'])

res = res[['Date_mean', 'Date_std']]
res

             Date_mean                Date_std
ID                                            
1  2017-10-26 12:00:00 78 days 11:43:56.874291
2  2017-10-01 18:00:00 55 days 15:53:10.401720
3  2017-10-07 16:00:00 27 days 14:38:57.222514

关于python - 如何计算 pandas datetime 对象的均值和方差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54609989/

相关文章:

python - 选择高于临界阈值的 pandas 数据框元素

python - 在 python 中将 Pandas dataframe 转换为 json 的最佳方法

python - Pandas :从第二行开始。从上一行中减去并将其用作下一次减法的值

python - 在 Pymongo 查询路径中使用日期时间的最佳实践?

python - 在 csv 文件中使用 python 格式化从 twitter api 返回的数据?

Python:为列表或对象中的变量赋值

python getattr 内置方法执行默认参数

python - 将时区感知日期时间列转换为具有 UTC 时间偏移量的字符串

javascript - 如何自定义Intl.DateTimeFormat日期?

python - 是否有用于 python 的已建立的 memoize 磁盘装饰器?