为什么不';他们不匹配吗?Python,创建于

为什么不';他们不匹配吗?Python,创建于,python,pandas,dataframe,Python,Pandas,Dataframe,在我的数据框中,我有如下列:“创建时间”、“日期”、“时间” 它们类似于:“1558522813000”、“2019-05-22”、“21:00:13” 我试过: df['created_at'] = pd.to_datetime(df.created_at) 但它生成了类似于“1970-01-01 00:25:54.068778”,我知道这是错误的,因为它与同一行中的“日期”和“时间”不匹配(应该是“2019-05-22…”) 这怎么可能 检查此示例: pd.to_datetime(149

在我的数据框中,我有如下列:
“创建时间”、“日期”、“时间”

它们类似于:
“1558522813000”、“2019-05-22”、“21:00:13”

我试过:

df['created_at'] = pd.to_datetime(df.created_at) 
但它生成了类似于“1970-01-01 00:25:54.068778”,我知道这是错误的,因为它与同一行中的“日期”和“时间”不匹配(应该是
“2019-05-22…”

这怎么可能

检查此示例:
pd.to_datetime(1490195805433502912,单位为''ns')

资料来源:

你必须设置单位。对于其他日期,您可以将其切分,并为“to_datetime”函数提供年、月等


希望这有帮助。

我认为
df['created_at']=pd.to_datetime(df.created_at,unit=“ms”).dt.strftime(“%Y-%m-%d”)
会解决您的问题

下面是一个完整的示例:

>>> import pandas as pd
>>> from datetime import datetime

>>> df = pd.DataFrame([{"created_at": 1558522813000}])
      created_at
0  1558522813000

>>> df['created_at'] = pd.to_datetime(df.created_at, unit="ms").dt.strftime("%Y-%m-%d")
>>> print(df)
   created_at
0  2019-05-22

Google如何使用datetime.strftime从StringTime获取datetime这是否回答了您的问题
1558522813000
是一个以毫秒为单位的历元时间,但默认情况下为ns-尝试传递
unit='ms'
并查看我尝试的工作:df['created'u at']=pd.to_datetime(df.created'u at,unit=“ms”).dt.strftime(%Y-%m-%d)这确实改进了以显示实际年份,但仍与某些行中的日期不匹配,知道为什么会这样吗?谢谢,例如,创建时间:1554068778000,日期:2019-04-01,时间:07:46:18,在我运行代码:创建时间:2019-03-31后,这可能会由于多种原因发生。这可能是人为错误造成的,尤其是在差异不大的情况下。有没有预期日期与实际日期不符的例子?@ElenaWang 1554068778000肯定是2019-03-31 23:46:18-与您的日期和时间相比似乎正好相差8小时,因此我认为这是一个时区问题,即您的“日期”和“时间”在本地时区,而“创建时间”在在UTC中。您可以尝试将8h=288000ms添加到在时间创建的所有
中,看看它是否修复了“不匹配”问题。