如何从日期时间中仅提取时间

时间:2019-03-30 16:12:47

标签: python pandas timedelta

我正在处理包含两个字符串列的数据集。日期和时间,例如:

Date                      Time                       Expiry
'2018-01-29 00:00:00'     '1900-01-01 12:40:59'       '2018-02-22 15:30:00'

我想做的是从“时间”列中提取时间,并在“日期”列中替换“ 00:00:00”,这样我就可以获取“日期+时间”,就像这样:

Output : 2018-01-29 12:40:59

我尝试使用timedelta()转换时间字符串:

temp['Time1']=pd.to_timedelta(temp['Time'])

但是输出不是我想要的:

-25567 days +12:40:59

之后,我想从“ Expiry”列中减去结果,以得到剩余时间的输出:

Expiry - Date + Time
2018-02-22 15:30:00 - 2018-01-29 12:40:59

Expected output: 24.11 days

我对python还是很陌生,所以请原谅稍微有点业余的描述和格式。任何帮助深表感谢。谢谢

2 个答案:

答案 0 :(得分:1)

使用此:

df = pd.DataFrame({'date': ['2018-01-29 00:00:00'],
                   'time': ['1900-01-01 12:40:59']})

df['datetime'] = df.date.str.split().str[0] + ' ' + df.time.str.split().str[1]
df['datetime'] = pd.to_datetime(df['datetime'])

print(df)
                  date                 time            datetime
0  2018-01-29 00:00:00  1900-01-01 12:40:59 2018-01-29 12:40:59

答案 1 :(得分:0)

您可以使用以下示例从datetime中提取所有内容:

datetime.year
datetime.month
datetime.day

您可以查看python的官方文档:datetime