我正在try 将包含Unix时间戳的Pandas DF的时间序列列转换为DateTime对象.当我try 使用在线工具来查看真实的约会时间时,它工作得非常好.然而,当我把它传递给Pandas to_datetime的时候,它把一切都转换错了.

我的df:

date
1680524178283156
1680524178283542
1680524178284691
1680524178289810

代码只是一句俏皮话:

df["date"] = pd.to_datetime(df["date"], dayfirst=True)
df.head()

Pandas 的输出是:

date
1970-01-20 10:48:44.178283156
1970-01-20 10:48:44.178283542
1970-01-20 10:48:44.178284691
1970-01-20 10:48:44.178289810

在网上查询(https://www.unixtimestamp.com/)时的真实日期是相当近的.例如,上面的df中的第一个时间戳为Mon Apr 03 2023 12:16:18 GMT+0000.另外,如果我try 使用其他方法,Pandas DateTime转换的数字看起来相当大.有时,我也会收到像OverflowError: signed integer is greater than maximum这样错误

先谢谢你.

推荐答案

您可以将日期除以1_000_000,然后转换为日期:

df['date'] = pd.to_datetime(df['date'] / 1_000_000, unit='s', origin='unix')
print(df)

打印:

                           date
0 2023-04-03 12:16:18.283155968
1 2023-04-03 12:16:18.283542016
2 2023-04-03 12:16:18.284691200
3 2023-04-03 12:16:18.289809920

或者:从微秒转换:

df['date'] = pd.to_datetime(df['date'], unit='us')

Python相关问答推荐

为什么Pydantic在我申报邮箱时说邮箱丢失

ValueRight:参数目标和输出必须具有相同的形状.接收:目标.形状=(无,512),输出.形状=(无,3)

单击cookie按钮,但结果不一致

FastAPI:使用APIRouter路由子模块功能

Python:MultiIndex Dataframe到类似json的字典列表

当测试字符串100%包含查询字符串时,为什么t fuzzywuzzy s Process.extractBests不给出100%分数?

Python如何让代码在一个程序中工作而不在其他程序中工作

sys.modulesgo 哪儿了?

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

使文本输入中的文本与标签中的文本相同

在matplotlib动画gif中更改配色方案

在上下文管理器中更改异常类型

配置Sweetviz以分析对象类型列,而无需转换

如何调整spaCy token 化器,以便在德国模型中将数字拆分为行末端的点

我必须将Sigmoid函数与r2值的两种类型的数据集(每种6个数据集)进行匹配,然后绘制匹配函数的求导.我会犯错

移动条情节旁边的半小提琴情节在海运

用砂箱开发Web统计分析

如何使regex代码只适用于空的目标单元格

Geopandas未返回正确的缓冲区(单位:米)

以逻辑方式获取自己的pyproject.toml依赖项