jon*_*boy 2 python timedelta pandas
我确定这是在 SO 中,但我似乎找不到它。我尝试转换column的floats,以timestamps显示为hh:mm:ss。以下是我的尝试:
import pandas as pd
d = ({
'A' : [100.4,200.2,300.3,400.6,500.8,600.9],
'B' : [10.4,21.5,36.3,44.3,56.6,60.5],
})
df = pd.DataFrame(data = d)
df['A','B'] = pd.to_datetime(df['A','B'], unit='h')
Run Code Online (Sandbox Code Playgroud)
预期输出:
A B
0 00:01:40 00:00:10
1 00:03:20 00:00:22
2 00:05:00 00:00:36
3 00:06:41 00:00:44
4 00:08:21 00:00:57
5 00:10:01 00:01:01
Run Code Online (Sandbox Code Playgroud)
round+ pd.to_timedelta,指定单位:
df.round().apply(pd.to_timedelta, unit='s')
A B
0 00:01:40 00:00:10
1 00:03:20 00:00:22
2 00:05:00 00:00:36
3 00:06:41 00:00:44
4 00:08:21 00:00:57
5 00:10:01 00:01:00
A timedelta64[ns]
B timedelta64[ns]
dtype: object
Run Code Online (Sandbox Code Playgroud)
您现在拥有 timedeltas 的功能
import pandas as pd
d = ({
'A' : [100.4,200.2,300.3,400.6,500.8,600.9],
'B' : [10.4,21.5,36.3,44.3,56.6,60.5],
})
df = pd.DataFrame(data = d)
df['A'] = df['A'].astype('float64')
df['B'] = df['B'].astype('float64')
df['A'] = pd.to_datetime(df["A"], unit='s').dt.strftime("%H:%M:%S")
df['B'] = pd.to_datetime(df["B"], unit='s').dt.strftime("%H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
输出是:
A B
0 00:01:40 00:00:10
1 00:03:20 00:00:21
2 00:05:00 00:00:36
3 00:06:40 00:00:44
4 00:08:20 00:00:56
5 00:10:00 00:01:00
Run Code Online (Sandbox Code Playgroud)