如何将 df 中的列转换为具有日期时间格式的纪元,反之亦然?
Posted
技术标签:
【中文标题】如何将 df 中的列转换为具有日期时间格式的纪元,反之亦然?【英文标题】:How to convert a column in df having epoch with date time format and vice-versa? 【发布时间】:2019-07-16 14:37:51 【问题描述】:1. 有值的 df
0 1
0 sun | 1549628346168
1 goal | 1532230566808
2 micheal | 1533647352218
输出格式应为
0 1
0 sun | 2019-02-02 Sat 21:16:20
1 goal | 2019-02-02 Sat 21:16:20
2 micheal | 2019-02-02 Sat 21:16:20
试过这个如何用文字表达一天
s = time/1000
datetime.datetime.fromtimestamp(s).strftime('%Y-%m-%d %H:%M:%S')
2.
有 df 值如何连接这两者并获得一个带有纪元时间的列
Date Time
0 08-09-2017 | 05:00 PM
1 16-06-17 | 10:27 AM
2 04-07-17 | 03:11 PM
输出
time
1549628346168
1532230566808
1533647352218
【问题讨论】:
【参考方案1】:将to_datetime
与unit='ms'
一起使用,然后将Series.dt.strftime
与%a
一起使用几天,同时检查http://strftime.org/:
df[1] = pd.to_datetime(df[1], unit='ms').dt.strftime('%Y-%m-%d %a %H:%M:%S')
print (df)
0 1
0 sun 2019-02-08 Fri 12:19:06
1 goal 2018-07-22 Sun 03:36:06
2 micheal 2018-08-07 Tue 13:09:12
编辑:
df['dt'] = pd.to_datetime(df['Date'] + ' ' + df['Time']).astype(np.int64) // 10**9
print (df)
Date Time dt
0 08-09-2017 05:00 PM 1502298000
1 16-06-17 10:27 AM 1497608820
2 04-07-17 03:11 PM 1491577860
【讨论】:
如何将这些2018-07-07 Sat 05:02:00
转换为这些2018-07-07 05:02:00
使用此df['Date'] = pd.to_datetime(df['Date'], unit='ms').dt.strftime('%Y-%m-%d %H:%M:%S')
得到此错误不可转换值 2018-07-07 Sat 05:02:00 with the unit 'ms'跨度>
@hukkemaaru - 删除 ms
,它用于 unix 格式
@hukkemaaru - 用于转换日期时间,如1447160702320
- 检查this
肯定会这样做以上是关于如何将 df 中的列转换为具有日期时间格式的纪元,反之亦然?的主要内容,如果未能解决你的问题,请参考以下文章
将具有日期和纪元格式值的字符串列转换为 postgresql/Tableau prep 中的日期列
如何使用 Java 将 unix 纪元的列转换为 Apache spark DataFrame 中的日期?