第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何將 Azure 備份報(bào)告持續(xù)時(shí)間列轉(zhuǎn)換為帶十進(jìn)制數(shù)的日期時(shí)間

如何將 Azure 備份報(bào)告持續(xù)時(shí)間列轉(zhuǎn)換為帶十進(jìn)制數(shù)的日期時(shí)間

繁花不似錦 2023-03-01 15:38:05
Azure 云備份報(bào)告中的 Duration 列似乎有一個(gè)有趣的時(shí)間格式(小時(shí)后和分鐘后為十進(jìn)制)。你能幫忙把小時(shí)、分鐘和秒部分四舍五入,使該列以小時(shí)為單位嗎?1.05:27:39.947072421:17.721:41.41.02:42:37.113681121:17.2我試圖格式化微秒部分,但不確定如何解決小時(shí)部分中的這些小數(shù)。很高興排除這些小數(shù)。appended_data['Duration'] = pd.to_datetime(appended_data['Duration'], format='%H:%M:%S.%f')ValueError: time data '1.05:27:39.9470724' does not match format '%H:%M:%S.%f' (match)appended_data['Backup Size'] = appended_data['Backup Size'].str.replace('MB','')appended_data['DurationFixed'] = pd.to_timedelta(df['Duration'].str.split(':',expand=True)\                    .stack()\                    .astype(float)\                    .round()\                    .astype(int).astype(str).unstack(1).fillna('00').agg(':'.join,axis=1),               unit='s')appended_data['DurationHours'] = appended_data['DurationFixed'] / np.timedelta64(1,'h')appended_data['Duration']1    04:01:22.77561391    03:31:17.06782621    04:41:32.72537651    03:11:18.33965881    04:51:20.2017034           ...       1    02:21:17.85540951    02:21:19.55470751    03:41:23.88768121    02:21:32.55291601    02:01:20.3247238appended_data['DurationFixed']1   02:01:201   02:01:201   02:01:201   02:01:201   02:01:20      ...   1   02:01:201   02:01:201   02:01:201   02:01:201   02:01:20謝謝
查看完整描述

2 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

根據(jù)數(shù)據(jù)分析,我可以得出結(jié)論,hh 部分的小數(shù)位實(shí)際上是天。示例 2.4:30:30 = 2 天 4 小時(shí) 30 分鐘 30 秒。


def cleanhours(x):

    hms=x.split(":")

    dh=hms[0].split(".")

    if len(dh)>1:

        hms[0]=str(int(dh[-1])+24*int(dh[-2]))

    hms[2] = hms[2].split(".")[0]

    return int(hms[0])+int(hms[1])/60.0+int(hms[2])/3600.0

#     return ":".join(hms)


查看完整回答
反對 回復(fù) 2023-03-01
?
動漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

似乎是一個(gè)奇怪的錯(cuò)誤,因?yàn)槲覐奈匆娺^像這樣來自 azure 的任何日志 - 無論如何,除非有一些內(nèi)置方法來處理這樣的數(shù)據(jù),否則我們將需要手動解析它。


在重新創(chuàng)建時(shí)間增量字符串之前,我們將拆分:然后舍入數(shù)字。


我必須明確地說,這不是真正的解決方法,因?yàn)槟枰薅ㄊ裁?.05是 1 小時(shí)零 x 分鐘?


如果您不關(guān)心以上內(nèi)容,那么以下內(nèi)容應(yīng)該有效。


方法 1 無精度,字符串格式。

print(df)


             Duration

0  1.05:27:39.9470724

1             21:17.7

2             21:41.4

3  1.02:42:37.1136811

4             21:17.2

df['DurationFixed'] = pd.to_timedelta(df['Duration'].str.split(':',expand=True)\

                    .stack()\

                    .astype(float)\

                    .round()\

                    .astype(int).astype(str).unstack(1).fillna('00').agg(':'.join,axis=1),

               unit='s')

                


print(df)


           Duration DurationFixed

0  1.05:27:39.9470724      01:27:40

1             21:17.7      21:18:00

2             21:41.4      21:41:00

3  1.02:42:37.1136811      01:42:37

4             21:17.2      21:17:00

如果你只想要幾個(gè)小時(shí),你可以使用np.timedelta64


import numpy as np


df['DurationFixed'] / np.timedelta64(1,'h')

0     1.461111

1    21.300000

2    21.683333

3     1.710278

4    21.283333

Name: DurationFixed, dtype: float64

方法 2 更精確。

如果您的數(shù)據(jù)格式相同 - 即Hours : Minutes : Seconds


我們可以堆疊并應(yīng)用累積計(jì)數(shù)并映射元數(shù)據(jù)字段以pd.to_timedelta在行級別使用我們的。


s = df['Duration'].str.split(':',expand=True)\

                    .stack()\

                    .astype(float).to_frame('time_delta')


print(s)


     time_delta

0 0   1.050000

  1  27.000000

  2  39.947072

1 0  21.000000

  1  17.700000

2 0  21.000000

  1  41.400000

3 0   1.020000

  1  42.000000

  2  37.113681

4 0  21.000000

  1  17.200000

s['metadata'] = s.groupby(level=0).cumcount().map({0 : 'h', 1 : 'm', 2 : 's' })


print(s)


    time_delta metadata

0 0   1.050000        h

  1  27.000000        m

  2  39.947072        s

1 0  21.000000        h

  1  17.700000        m

2 0  21.000000        h

  1  41.400000        m

3 0   1.020000        h

  1  42.000000        m

  2  37.113681        s

4 0  21.000000        h

  1  17.200000        m

apply最后,我們在行級別使用 an將每一行轉(zhuǎn)換為它的 repective 格式并四舍五入到最接近的n秒數(shù)。我選了10個(gè)。


df['DurationPrecise'] = s.apply(lambda x : pd.to_timedelta(x.time_delta,

                                x.metadata,errors='coerce'),axis=1)\          

              .groupby(level=0).sum().dt.round('10s')



print(df)


             Duration DurationFixed DurationPrecise

0  1.05:27:39.9470724      01:27:40        01:30:40

1             21:17.7      21:18:00        21:17:40

2             21:41.4      21:41:00        21:41:20

3  1.02:42:37.1136811      01:42:37        01:43:50

4             21:17.2      21:17:00        21:17:10


查看完整回答
反對 回復(fù) 2023-03-01
  • 2 回答
  • 0 關(guān)注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號