You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pandas DataFrame中将Epoch时间戳转换为格式化日期字符串

解决方法:用Pandas原生工具生成格式化日期字符串

嘿,我来帮你搞定这个问题!其实你完全可以不用依赖mdate.epoch2num,Pandas本身就提供了更直接高效的方法来处理Epoch时间戳,一步到位生成你想要的格式化日期字符串。

步骤1:将Epoch时间戳转为Pandas datetime类型

首先把你的timestamp列转换成Pandas可识别的datetime对象,这一步是基础:

import pandas as pd

# 假设你的DataFrame名为data
data['datetime'] = pd.to_datetime(data['timestamp'], unit='s')

这里unit='s'是因为你的时间戳是以秒为单位的Epoch时间,如果是毫秒级的时间戳,记得改成unit='ms'。

步骤2:生成格式化日期字符串列

有了datetime类型的列之后,直接用strftime()方法就能生成指定格式的字符串:

data['date_str'] = data['datetime'].dt.strftime('%Y-%m-%d')

这样date_str列就会出现类似2016-02-26的格式化日期字符串了——你的示例时间戳刚好都属于同一天哦。


如果你坚持用mdate.epoch2num的后续处理

要是你已经用mdate.epoch2num生成了date_num列,也可以基于这个列继续处理:

from matplotlib.dates import num2date

# 先把数值型日期转成datetime对象
data['datetime'] = data['date_num'].apply(num2date)
# 再生成格式化字符串
data['date_str'] = data['datetime'].dt.strftime('%Y-%m-%d')

完整测试代码

用你给出的示例DataFrame测试的完整代码如下:

import pandas as pd

# 构造示例DataFrame
data = pd.DataFrame({
    'timestamp': [1456407930, 1456407945, 1456407961, 1456407977, 1456407992,
                  1456408008, 1456408024, 1456408040, 1456408055, 1456408071,
                  1456408087, 1456408102]
})

# 转换并生成格式化日期列
data['datetime'] = pd.to_datetime(data['timestamp'], unit='s')
data['date_str'] = data['datetime'].dt.strftime('%Y-%m-%d')

# 查看结果
print(data[['timestamp', 'date_str']])

内容的提问来源于stack exchange,提问作者PATRICIO GALEAS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:50:42