我正在處理的資料框的螢屏截圖
我想將 df['Chip Time'] 列中的值轉換為字串 obj 到 timedelta64。
試過這個....> df2['Chip Time'] = pd.to_timedelta(df2['Chip Time'])
但是得到錯誤訊息...> ValueError:預期的hh:mm:ss格式
uj5u.com熱心網友回復:
您可以使用正則運算式str.replace來添加僅'0:'匹配的值'x:x':
df2['Chip Time'] = pd.to_timedelta(df2['Chip Time']
.str.replace('^(\d :\d )$', r'0:\1', regex=True)
)
示例輸出:
Chip Time
0 0 days 00:16:48
1 0 days 01:07:51
使用的輸入:
Chip Time
0 16:48
1 1:07:51
uj5u.com熱心網友回復:
您可以添加00:if 字串只有一個:by Series.str.countwith Series.mask:
df2 = pd.DataFrame({"Chip Time": ['10:04','1:45:23','23:12']})
s = df2['Chip Time'].mask(df2['Chip Time'].str.count(':').eq(1), '00:' df2['Chip Time'])
#alternative:
s = np.where(df2['Chip Time'].str.count(':').eq(1), '00:', '') df2['Chip Time']
print (s)
0 00:10:04
1 1:45:23
2 00:23:12
Name: Chip Time, dtype: object
df2['Chip Time'] = pd.to_timedelta(s)
print (df2)
Chip Time
0 0 days 00:10:04
1 0 days 01:45:23
2 0 days 00:23:12
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/510255.html
上一篇:pandas正則運算式從第一次出現的字符向前和向后看
下一篇:如何在多個字串周圍添加單引號
