我有一个包含2列的pandas数据框:第一列是分钟,第二列是秒。看起来像这样:
min s
0 0 0
1 0 1
2 0 2
3 0 3
4 0 4
5 0 5
6 0 6
7 0 7
8 0 8
9 0 9
10 0 10
11 0 11
12 0 12
如何将其转换为%M:%S格式的日期时间?
答案 0 :(得分:0)
我相信,因为您只有“仅时间”列,所以应避免使用datetime,而应使用timedelta。
我会尝试这样的事情:
import pandas as pd
df=pd.DataFrame({"minute":[0,1,2,3,4,5],"second":[30,40,50,60,10,20]})
df['time'] = df.agg('{0[minute]}:{0[second]}'.format, axis=1)
df['time'] = pd.to_timedelta('00:'+df['time'])
print(df)输出,如果不需要,则可以在分钟和第二列之后删除
minute second time
0 0 30 00:00:30
1 1 40 00:01:40
2 2 50 00:02:50
3 3 60 00:04:00
4 4 10 00:04:10
5 5 20 00:05:20
答案 1 :(得分:0)
l = []
for MinSec in list(zip(df['min'],df['s'])):
l.append(':'.join(map(str,MinSec)))
pd.to_datetime(pd.Series(l), format='%M:%S')
仅zip
个min和s列,使用:
作为分隔符将它们连接起来,并将带有to_datetime()
的序列转换为您所需的日期时间格式。