Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将datetime.date或字符串转换为时间戳_Python_Pandas_Datetime_Timestamp - Fatal编程技术网

在python中将datetime.date或字符串转换为时间戳

在python中将datetime.date或字符串转换为时间戳,python,pandas,datetime,timestamp,Python,Pandas,Datetime,Timestamp,我知道这个问题以前被贴了很多次,但我几乎没有怀疑。我有一个datetime.date(例如mydate=date(2014,5,1)),我将其转换为一个字符串,然后作为列(dtype:object)保存在DB表中。现在我想将日期的存储从文本更改为DB中的时间戳。我试过这个 例如,我的表格是tab1。在python中,我将其理解为dataframedf # datetime to timestamp df['X'] = pd.to_datetime(mydate) 当我在python编辑器df.

我知道这个问题以前被贴了很多次,但我几乎没有怀疑。我有一个
datetime.date
(例如
mydate=date(2014,5,1)
),我将其转换为一个字符串,然后作为列
(dtype:object)
保存在DB表中。现在我想将日期的存储从文本更改为DB中的时间戳。我试过这个

例如,我的表格是
tab1
。在python中,我将其理解为dataframe
df

# datetime to timestamp
df['X'] = pd.to_datetime(mydate)

当我在python编辑器
df.info()
中检查数据类型时,X的数据类型是datetime64[ns],但当我在MySQL中将其保存到DB并在python中再次读取为dataframe时,数据类型将更改为object。我在MySQL中有datetime数据类型,但在MySQL中我需要这个作为时间戳数据类型。有什么办法吗?另外,我只需要从时间戳('2014-5-01 00:00:00')开始记录日期并排除时间。

问题是,当您从MySQL读取序列化值时,python-MySQL连接器不会转换它。通过对检索到的数据再次调用函数,从光标读取数据后,必须将其转换为DateTime值:

df['X'] = pd.to_datetime(df['col'])

正如建议的那样,在插入数据库时,我使用
to_sql()
函数中的
dtype
参数直接更改了列类型。所以,现在我可以在MySQL中使用数据类型为
TIMESTAMP,DATETIME
,也可以使用
DATE

您在MySQL中的列是日期类型吗?在MySQL中,它是datetimeOk,但我希望在MySQL中使用数据类型作为时间戳,而不是DATETIME。(只显示日期)所以在MySQL中选择TIMESTAMP类型作为列类型…你知道我如何通过python做到这一点吗?你是否检查了df['datetime']=df['datetime'].apply(lambda x:pd.TIMESTAMP(x))?是的,我刚刚尝试使用pd.TIMESTAMP,但MySQL中的数据类型仍然是datetime:(