如何根据字符串列设置python pandas中datetime列的时间

时间:2017-11-08 10:22:50

标签: python pandas datetime

我有一个DataFrame,其中包含DateTime列,其中包含日期但没有时间['date_from']。我有时间在列['Time'](字符串)中。如何只将时间添加到现有的DateTime列?

我试过了:

df['date_from'].dt.time = pd.to_datetime(df['Time'], format='%H%M').dt.time

1 个答案:

答案 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