[英]pandas python how to convert time duration to milliseconds?
我有一個 df,你可以通過復制並運行以下代碼來獲得它:
import pandas as pd
from io import StringIO
df = """
b_id duration1 duration2 user
384 28 days 21:05:16.141263 0 days 00:00:44.999706 Test
"""
df= pd.read_csv(StringIO(df.strip()), sep='\s\s+', engine='python')
df
我的問題是,如何將持續時間從“28 天 21:05:16.141263”轉換為毫秒?
首先將您的持續時間 1 轉換為timedelta
,然后再轉換為毫秒
df['duration1'] = pd.to_timedelta(df['duration1'])
df['dur1_milli'] = df['duration1'].astype(np.int64) / int(1e6)
print(df)
輸出#
b_id duration1 duration2 user dur1_milli
0 384 28 days 21:05:16.141263 0 days 00:00:44.999706 Test 2.495116e+09
如果你想擴展它們
將此添加到代碼的第一行
pd.set_option('display.float_format', lambda x: '%.3f' % x)
輸出 #
b_id duration1 duration2 user dur1_milli
0 384 28 days 21:05:16.141263 0 days 00:00:44.999706 Test 2495116141.263
試試這個
df['duration1'].map(lambda x: pd.to_timedelta(x).total_seconds() * 1e3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.