获取给定日期的gps周数

时间:2015-12-08 13:09:32

标签: python datetime numpy pandas timedelta

我有以下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"> 方法以及为什么类型不同的问题?

1 个答案:

答案 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作为便利例程