我有一个DataFrame,其中包含DateTime列,其中包含日期但没有时间['date_from']
。我有时间在列['Time']
(字符串)中。如何只将时间添加到现有的DateTime列?
我试过了:
df['date_from'].dt.time = pd.to_datetime(df['Time'], format='%H%M').dt.time
答案 0 :(得分:1)
将列转换为to_timedelta
并添加到datetime
列:
#convert to string and if necessary add zero for 4 values
s = df['Time'].astype(str).str.zfill(4)
df['date_from'] += pd.to_timedelta(s.str[:2] + ':' + s.str[2:] + ':00')
样品:
df = pd.DataFrame({'date_from':pd.date_range('2015-01-01', periods=3),
'Time':[1501,112, 2012]})
print (df)
Time date_from
0 1501 2015-01-01
1 0112 2015-01-02
2 2012 2015-01-03
s = df['Time'].astype(str).str.zfill(4)
df['date_from'] += pd.to_timedelta(s.str[:2] + ':' + s.str[2:] + ':00')
print (df)
Time date_from
0 1501 2015-01-01 15:01:00
1 0112 2015-01-02 01:12:00
2 2012 2015-01-03 20:12:00