![](/img/trans.png)
[英]Int too large to convert to C long while doing .astype(int)
[英]Convert a timestamp to int using astype(int)
我有可變time
:
>>> time = pd.to_datetime(1613260800000000000)
>>> time
Timestamp('2021-02-14 00:00:00')
time
是一個timestamp
。 現在我想將time
轉換回一個int
值。 但是Timestamp
object 沒有屬性astype
。 運行以下代碼:
>>>time.astype(int)
AttributeError: 'Timestamp' object has no attribute 'astype'
我知道對於 dataframe 的一列我可以這樣做:
>>> df['start_time'] = df['start_time'].to_timedate()
>>> df['start_time'] = df['start_time'].astype(int)
第二個命令將列的類型分配給int
。
但是我沒有找到一個全面的資源來解釋如何處理單個Timestamp
參數。
我該如何解決這個問題?
只需使用time_variable.timestamp()
但這將在幾秒鍾內......而不是 ms 或其他任何東西(我們?)
您需要將結果乘以1e9
以返回與您輸入的相同的值
對於像numpy/pandas
的原生格式這樣的ns
,請使用:
d = pd.to_datetime(1613260800000000000)
native = int(d.timestamp() * 10**9)
print (native)
1613260800000000000
print (pd.to_datetime(native))
2021-02-14 00:00:00
如果需要轉換列:
time = pd.to_datetime(1613260800000000000)
df = pd.DataFrame({'start_time':[time, time]})
print (df['start_time'].astype(np.int64))
0 1613260800000000000
1 1613260800000000000
Name: start_time, dtype: int64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.