[英]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.