Pandas 系列:字符串日期到纪元 unix 秒

Jen*_*won 1 python pandas

我有一个 Pandas Dataframe,其中一列采用字符串日期格式,如下所示

0               time
1  September 20 2016  
2  September 20 2016     
3  September 19 2016     
4  September 16 2016
Run Code Online (Sandbox Code Playgroud)

将时间替换为 epoch unix 秒的简洁方法是什么?

mon*_*kut 5

您可以使用 Series 方法修改列的值,方法是为其提供一个包含要对每个apply执行的操作的函数。

为了处理日期时间,您可以使用dateutil.parser.parse将任意字符串解析为日期时间对象。

import datetime
import pandas as pd
from dateutil.parser import parse

s = pd.Series(['September 20 2016',
'September 20 2016',
'September 19 2016',
'September 16 2016'])
df = pd.DataFrame(s)

def dt2epoch(value):
    d = parse(value)
    return d.timestamp()
    
df[0].apply(dt2epoch)  # apples given function to each value of column
Run Code Online (Sandbox Code Playgroud)

结果:

0    1474329600
1    1474329600
2    1474243200
3    1473984000
Name: 0, dtype: float64
Run Code Online (Sandbox Code Playgroud)