你如何做反向gmtime(),你把时间+日期和获得秒数?
我有类似的字符串'Jul 9, 2009 @ 20:02:58 UTC',我想要回到2009年7月9日之间的秒数.
我已经尝试time.strftime但我不知道如何正确使用它,或者它是否是正确的命令使用.
从pandas.to_datetime的官方文档我们可以说,
unit : string, default ‘ns’
Run Code Online (Sandbox Code Playgroud)
arg的单位(D,s,ms,us,ns)表示单位,即整数或浮点数.这将基于起源.例如,unit ='ms'和origin ='unix'(默认值),这将计算unix epoch start的毫秒数.
所以,当我这样尝试时,
import pandas as pd
df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})
df_unix_sec = pd.to_datetime(df['time'],unit='ms',origin='unix')
print(df)
print(df_unix_sec)
time
0 2019-01-15 13:25:43
0 2019-01-15 13:25:43
Name: time, dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
输出不会改变后者.每次显示日期时间值而不是第二个时间点的unix时期开始的毫秒数.这是为什么?我错过了什么吗?
sklearn分类器将Pandas TimeStamp(= datetime64[ns])接受为X中的列,只要所有 X列都属于该类型。但是,当同时有TimeStamp和float列时,sklearn拒绝使用TimeStamp。
除了将时间戳转换为int使用astype(int)之外,还有其他解决方法吗?(我仍然需要原始列来访问dt.year等,因此理想情况下,最好不要创建重复列只是为了向sklearn提供功能。)
import pandas as pd
from sklearn.linear_model import LinearRegression
test = pd.date_range('20000101', periods = 100)
test_df = pd.DataFrame({'date': test})
test_df['a'] = 1
test_df['y'] = 1
lr = LinearRegression()
lr.fit(test_df[['date']], test_df['y']) # works fine
lr.fit(test_df[['date', 'date']], test_df['y']) # works fine
lr.fit(test_df[['date', 'a']], test_df['y']) # complains
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-90-0605fa5bcdfa> in <module>()
----> 1 lr.fit(test_df[['date', 'a']], test_df['y'])
/home/shoya/.pyenv/versions/3.5.0/envs/study-env/lib/python3.5/site-packages/sklearn/linear_model/base.py in fit(self, X, …Run Code Online (Sandbox Code Playgroud)