【问题标题】:How do I convert numpy array to days, hours, mins?如何将 numpy 数组转换为天、小时、分钟?
【发布时间】:2020-12-08 10:18:14
【问题描述】:

运行这个系列

X = number_of_logons_all.values
split = round(len(X) / 2)
X1, X2 = X[0:split], X[split:]
mean1, mean2 = X1.mean(), X2.mean()
var1, var2 = X1.var(), X2.var()
print('mean1=%f, mean2=%f' % (mean1, mean2))
print('variance1=%f, variance2=%f' % (var1, var2))

我明白了:

mean1=60785.792548, mean2=61291.266868
variance1=7483553053.651829, variance2=7603208729.348722

但我想要在我的 PyCharm 控制台中使用类似的东西(从另一个结果中提取):

>>> -103 days +04:37:13.802435724...

试图将 np.array 放在 pd.Dataframe() 中以通过添加获得预期值

.apply(pd.to_timedelta, unit='s')

...这不起作用,所以我尝试了

new = pd.DataFrame([mean1]).to_numpy(dtype='timedelta64[ns]')

...并且(仍然)得到这样的东西:

>>>> [[63394]]

有谁能帮助我从上面的均值计算中转换为易于理解的日期时间结果吗?

感谢您的支持。

【问题讨论】:

    标签: python-3.x pandas numpy mean datetime64


    【解决方案1】:

    你可以使用f-strings:

    mean1, mean2 = 60785.792548, 61291.266868
    variance1, variance2=7603208729.348722,7483553053.651829
    
    print(f'mean1={pd.Timedelta(mean1, unit="s")}, mean2={pd.Timedelta(mean2, unit="s")}')
    print(f'variance1={pd.Timedelta(variance1, unit="s")}, variance2={pd.Timedelta(variance2, unit="s")}')
    mean1=0 days 16:53:05.792548, mean2=0 days 17:01:31.266868
    variance1=88000 days 02:25:29.348722458, variance2=86615 days 04:44:13.651828766
    

    【讨论】:

    • 太好了,谢谢。原则上它有效,得到了这个......mean1 = 0天17:36:34.480990274,mean2 = 0天17:39:34.165340407variance1 = 93494天10:19:28.083414078,variance2 = 94031天03:31:31.984157562。就像你一样,顺便说一句。然而,时间跨度是今年早些时候的几个月,所以不知道我是如何以数千天结束的......;o)
    • @Hubsandspokes - 超级棒!顺便说一句,使用 timedeltas 很痛苦;)例如如果需要自定义格式不容易,需要this
    • 另外一个问题:我有一些学生,即 750 个唯一 ID,在今年 2 月至 5 月期间登录 AD,一些唯一 ID 甚至数千次。我可以使用 groupby 和 count/ID 来澄清这一点,但是我在试图弄清楚学生在某个终止日期之前登录了多少次时遇到了问题。比如说,一个学生证在上述期间登录了 150 次不同的日期,但我怎么能把它放在 Python 代码中。例如。我有一个名为“用户名”的列,另一个名为“登录时间”的列,第三个名为“学生行”的列。你有什么建议吗?谢谢
    • @Hubsandspokes - 我认为新问题应该很好,没有数据不容易回答。
    • 检查一下,stackoverflow.com/questions/65230004/…,感谢您的支持
    猜你喜欢
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多