1

パンダに関数を適用する際に何か奇妙なことが起こっています。シリーズ

In [508]: id = lambda x : x
In [509]: tt = lambda x : type(x)
In [510]: timeSeries
Out[510]: 
0   1900-01-01 20:11:49.075690
1   1900-01-01 20:11:49.082546
2   1900-01-01 20:11:52.535287
3   1900-01-01 20:11:52.535372
4   1900-01-01 20:11:52.535528
Name: timeSeries

In [511]: timeSeries.map(id)
Out[511]: 
0    1969-12-06 172:11:49.075690
1    1969-12-06 172:11:49.082546
2    1969-12-06 172:11:52.535287
3    1969-12-06 172:11:52.535372
4    1969-12-06 172:11:52.535528
Name: timeSeries

ここでは、id関数を適用してタイムスタンプが変更されています。新しい時刻の時刻が正しくありません。詳細:タイプも変更されます

In [513]: type(timeSeries[0])
Out[513]: pandas.lib.Timestamp

In [512]: timeSeries.map(tt)
Out[512]: 
0    <type 'numpy.datetime64'>
1    <type 'numpy.datetime64'>
2    <type 'numpy.datetime64'>
3    <type 'numpy.datetime64'>
4    <type 'numpy.datetime64'>
Name: timeSeries

マップするタイムスタンプが保持されている限り、タイプの変更は問題ないと思います

In [515]: np.datetime64(timeSeries[0])
Out[515]: 1900-01-01 20:11:49.075690

誰かがここで何が起こっているのか説明してもらえますか?pandas.lib.Timestampタイプを期待している、カスタマイズされた関数を使用してマップを作成したいと思います。または、np.datetime64を有効な時間に変換する方法がある場合。

編集:以下の作業により、np.datetime64をタイムスタンプにキャストし直します。それでも上記は奇妙です。

In [528]: pd.lib.Timestamp(time2[0])
Out[528]: <Timestamp: 1900-01-01 20:11:49.075690>
In [529]: time2[0]
Out[529]: 1969-12-06 172:11:49.075690

私の推測では、np.datetime64とpandas.lib.Timestampの内部フォーマットの違いについてですか?

4

0 に答える 0