将datetimestamp转换为python中的时间

时间:2018-08-16 12:05:19

标签: python pandas dataframe

是python的新手,正在寻求帮助。

我已经用数据导入了一个csv,其中一列具有日期时间戳。作为数据框,它被读取为类型对象,例如20.4.2018 07:57:00

我如何将该列转换为时间(或者从仅显示时间的日期时间戳创建一个新列)而不使用日期,以便我可以根据时间绘制图形。

谢谢。

滑车

4 个答案:

答案 0 :(得分:2)

您可以使用strptime from datetime module

>>> import datetime
>>> datetime.datetime.strptime("20.4.2018 07:57:00", "%d.%m.%Y %H:%M:%S")
datetime.datetime(2018, 4, 20, 7, 57)

答案 1 :(得分:1)

如果您的df是这样的:

        date_time_info  value
0  2010.01.01 07:57:00      1
1  2010.01.01 07:58:00      2
2  2010.01.01 07:59:00      3

使用此:

df['date_time_info'] = pd.to_datetime(df['date_time_info']).dt.strftime('%H:%M:%S')

输出:

  date_time_info  value
0       07:57:00      1
1       07:58:00      2
2       07:59:00      3

编辑

要进行绘图,您可以采用以下方式:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

df['date_time_info'] = pd.to_datetime(df['date_time_info'])
fig, ax = plt.subplots(1)
fig.autofmt_xdate()
plt.plot(df['date_time_info'], df['value'], linestyle='None', marker='.', markersize=10)
xfmt = mdates.DateFormatter('%H:%M:%S')
ax.xaxis.set_major_formatter(xfmt)
plt.show()

输出:

enter image description here

答案 2 :(得分:1)

您可以直接使用熊猫to_datetime

dt = pd.to_datetime("20.4.2018 07:57:00", format="%d.%m.%Y %H:%M:%S")
time_only = dt.time()

优点是to_datetime是矢量化的,因此您可以将其直接应用于整个索引/列。

答案 3 :(得分:0)

我将使用datetime模块:

from datetime import datetime
timestamp_string = "20.4.2018 07:57:00"
dt_obj = datetime.strptime(timestamp_string, "%d.%m.%Y %H:%M:%S")
print(dt_obj.strftime("%H:%M:%S"))