gpt4 book ai didi

python - 绘制 Pandas 时间增量

转载 作者:IT老高 更新时间:2023-10-28 21:49:44 27 4
gpt4 key购买 nike

我有一个 pandas 数据框,它有两个 datetime64 列和一个 timedelta64 列,它是两列之间的差异。我正在尝试绘制 timedelta 列的直方图,以可视化两个事件之间的时间差异。

但是,只使用 df['time_delta']结果是: TypeError: ufunc add cannot use operands with types dtype('<m8[ns]') and dtype('float64')

尝试将 timedelta 列转换为:float--> df2 = df1['time_delta'].astype(float)结果是: TypeError: cannot astype a timedelta from [timedelta64[ns]] to [float64]

如何创建 pandas timedelta 数据的直方图?

最佳答案

这里是转换timedeltas的方法,文档是here

In [2]: pd.to_timedelta(np.arange(5),unit='d')+pd.to_timedelta(1,unit='s')
Out[2]:
0 0 days, 00:00:01
1 1 days, 00:00:01
2 2 days, 00:00:01
3 3 days, 00:00:01
4 4 days, 00:00:01
dtype: timedelta64[ns]

转换为秒(是精确的转换)

In [3]: (pd.to_timedelta(np.arange(5),unit='d')+pd.to_timedelta(1,unit='s')).astype('timedelta64[s]')
Out[3]:
0 1
1 86401
2 172801
3 259201
4 345601
dtype: float64

使用 astype 转换将舍入到该单位

In [4]: (pd.to_timedelta(np.arange(5),unit='d')+pd.to_timedelta(1,unit='s')).astype('timedelta64[D]')
Out[4]:
0 0
1 1
2 2
3 3
4 4
dtype: float64

部门会给出准确的repr

In [5]: (pd.to_timedelta(np.arange(5),unit='d')+pd.to_timedelta(1,unit='s')) / np.timedelta64(1,'D')
Out[5]:
0 0.000012
1 1.000012
2 2.000012
3 3.000012
4 4.000012
dtype: float64

关于python - 绘制 Pandas 时间增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23543909/

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