簡體   English   中英

如何使用 pandas 將日期表示為字符串的列安全地轉換為 unix 時間戳?

[英]How to safely convert columns with dates represented as strings to unix timestamps using pandas?

我有以下數據框:

       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: invalid literal for int() with base 10: '2011-01-01'

我在任何地方都找不到相同的問題。 有什么問題? 謝謝。

看起來您當前的代碼正在嘗試將字符串2011-01-01直接轉換為 integer 即np.int64 解析/轉換失敗,因此您看到錯誤。

您可以先使用pd.to_datetime()方法將列中的字符串值轉換為日期時間 object。 文檔)。 然后您可以將類型轉換為np.int64

給定以下 dataframe:

        dates
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM