我有以下Pandas系列,并希望获得该日期的GPS周数:
gps_epoch = datetime.datetime(1980, 1, 6)
delta = times - gps_epoch
In [120]: delta
Out[120]:
0 13109 days 00:00:00.540000
1 13109 days 00:00:00.699000
2 13109 days 00:00:01
3 13109 days 00:00:01.699000
4 13109 days 00:00:02.699000
Name: GMT, dtype: timedelta64[ns]
当我试图将日期减去GPS纪元的开头并获得总秒数时,我已经得到了:
total_seconds
我试图为该系列映射In [124]: delta.map(lambda x: x.total_seconds())
AttributeError: 'numpy.timedelta64' object has no attribute 'total_seconds'
,但我发现错误:
In [130]: delta[0].total_seconds()
Out[130]: 1132617600.54
但是,当我试图获得第一个元素的总秒数时,一切都很好:
In [135]: np.floor(delta[0].total_seconds()/86400/7)
Out[135]: 1872.0
然后,为了获得GPS周数,我可以做以下事情:
In [137]: type(delta[0])
Out[137]: pandas.tslib.Timedelta
In [138]: delta.map(lambda x: type(x))
Out[138]:
0 <class 'numpy.timedelta64'>
1 <class 'numpy.timedelta64'>
2 <class 'numpy.timedelta64'>
3 <class 'numpy.timedelta64'>
4 <class 'numpy.timedelta64'>
Name: GMT, dtype: object
我检查了两种情况的类型,但它们是不同的......:
map
为什么它不使用 <RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="64dp">
方法以及为什么类型不同的问题?
答案 0 :(得分:1)
你可以dt.total_seconds
:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|jquery|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
和
In [67]:
delta.dt.total_seconds()
Out[67]:
0 1.132618e+09
1 1.132618e+09
2 1.132618e+09
3 1.132618e+09
4 1.132618e+09
dtype: float64
或使用In [68]:
np.floor(delta.dt.total_seconds()/86400/7)
Out[68]:
0 1872
1 1872
2 1872
3 1872
4 1872
dtype: float64
:
floordiv
发生错误是因为In [84]:
delta.dt.total_seconds().floordiv(86400).floordiv(7)
Out[84]:
0 1872
1 1872
2 1872
3 1872
4 1872
dtype: float64
转换为dtype
,而np.timedelta
属性没有totalseconds
属性,而pandas timedelta
确实如此(因为它是子类datetime.timedelta
)见:http://pandas.pydata.org/pandas-docs/stable/timedeltas.html
请考虑以下事项:
In [97]:
type(delta[0])
Out[97]:
pandas.tslib.Timedelta
In [100]:
delta[[0]].map(lambda x: print(type(x)))
<class 'numpy.timedelta64'>
Out[100]:
0 None
dtype: object
这可能是为了提供与np
方法的兼容性,但您可以使用dt.totalseconds
作为便利例程