Python 如何使用pandas将日期表示为字符串的列安全地转换为unix时间戳?

Python 如何使用pandas将日期表示为字符串的列安全地转换为unix时间戳?,python,pandas,datetime-format,unix-timestamp,Python,Pandas,Datetime Format,Unix Timestamp,我有以下数据框: dteday 0 2011-01-01 1 2011-01-02 2 2011-01-03 3 2011-01-04 4 2011-01-05 5 2011-01-06 6 2011-01-07 7 2011-01-08 8 2011-01-09 9 2011-01-10 10 2011-01-11 11 2011-01-12 12 201

我有以下数据框:

       dteday

0      2011-01-01
1      2011-01-02
2      2011-01-03
3      2011-01-04
4      2011-01-05
5      2011-01-06
6      2011-01-07
7      2011-01-08
8      2011-01-09
9      2011-01-10
10     2011-01-11
11     2011-01-12
12     2011-01-13
13     2011-01-14
14     2011-01-15
15     2011-01-16
16     2011-01-17
并希望将此列转换为此日期的Unix时间戳列

我尝试了这个,但遇到了下一个错误:

df['tmstamp']=df.dteday.astype(np.int64)

错误:
ValueError:以10为基数的int()的文本无效:“2011-01-01”

我在任何地方都找不到同样的问题。
有什么问题吗?谢谢。

看起来您当前的代码正在尝试将字符串
2011-01-01
直接转换为整数,即
np.int64
。解析/转换失败,因此您看到一个错误

您可以使用
pd.to_datetime()
方法首先将列中的字符串值转换为datetime对象。(). 然后可以将类型转换为
np.int64

给定以下数据帧:

日期
0  2011-01-01
1  2011-01-02
2  2011-01-03
3  2011-01-04
4  2011-01-05
试试这个:

df['timestamp']=pd.to_datetime(df['dates']).astype(np.int64)
产出:

        dates            timestamp
0  2011-01-01  1293840000000000000
1  2011-01-02  1293926400000000000
2  2011-01-03  1294012800000000000
3  2011-01-04  1294099200000000000
4  2011-01-05  1294185600000000000

请澄清你的问题。时间戳可以指几件事。您是否希望从日期中获取UNIX历元时间戳?