【发布时间】:2020-12-06 06:39:34
【问题描述】:
我在将 pandas Series 转换为 datetime.datetime 时遇到问题。
我得到了 DataFrame - df,列 Timestamp 类型为:pandas._libs.tslibs.timestamps.Timestamp,列 Timestamp-end 类型:pandas._libs.tslibs.timedeltas.Timedelta
我在 SO:Converting pandas.tslib.Timestamp to datetime python 上找到了该主题,但有关该主题的建议无效。
是否有可能将其转换为日期时间?如果不是,如何从 Timestamp 类型的列中减去 Timestamp-end 以将日期和时间转换为 Timestamp 和 Timedelta 类型?
我如何创建时间戳列:
import adodbapi
import pandas as pd
import numpy as np
import datetime as dt
cursor = myConn.cursor()
cursor.execute(query)
# every row in query_list is type of SQLrow
query_list = [row for row in cursor]
df = pd.DataFrame({'TagAddress':[row[0] for row in query_list], 'Timestamp':[row[1] for row in query_list], 'Value':[row[3] for row in query_list]})
时间戳结束列:
df['Timestamp-end'] = pd.NaT
# in for loop, dict values are type of timestamps.Timestamp
df['Timestamp-end'].iloc[i] = df['Timestamp'].iloc[i] - current_errors_timestamp[curr_fault_key]
我的预期输出(结果列):
我只想从Timestamp 中减去Timedelta 以获得新列Timestamp。使用datetime.datetime 类型我可以毫无问题地做到这一点。
Timestamp ErrorValue Machine Station FAULT Timestamp-end Result
2020-06-20 08:01:09.562 370 T1 R1 1 0 days 00:00:06 2020-06-20 08:01:03
2020-06-20 08:01:21.881 370 T1 R1 0 0 days 00:00:12.319000 2020-06-20 08:01:09
2020-06-20 08:07:06.708 338 T1 R1 0 0 days 00:00:24.623000 2020-06-20 08:06:42
2020-06-20 08:07:31.041 338 T1 R1 0 0 days 00:00:18.333000 2020-06-20 08:07:13
【问题讨论】: