2015-09-28 5 views
6

を減らすには、こんにちは、私は、次のデータフレームPythonの:精密パンダのタイムスタンプデータフレーム

df = 

     Record_ID  Time 
     94704 2014-03-10 07:19:19.647342 
     94705 2014-03-10 07:21:44.479363 
     94706 2014-03-10 07:21:45.479581 
     94707 2014-03-10 07:21:54.481588 
     94708 2014-03-10 07:21:55.481804 

は、それは、次のことが可能ですか?

df1 = 

     Record_ID  Time 
     94704 2014-03-10 07:19:19 
     94705 2014-03-10 07:21:44 
     94706 2014-03-10 07:21:45 
     94707 2014-03-10 07:21:54 
     94708 2014-03-10 07:21:55 
+0

タイプ 'datetime'の' Time'ですか? –

+0

これは問題ですか? – EdChum

+0

もし 'digit(df.Time [0])'を返すと、 'pandas.tslib.Timestamp'が返されます。 – emax

答えて

5

あなたは本当にあなたが0microsecond一部を置き換えるために、シリーズ全体に適用するSeries.apply方法と一緒にTimestamp.replaceメソッドを使用することができ、日時のmicrosecond一部を削除する必要があります。例 - あなたがdatetime64[s]値に基礎となるnumpyのdatetime64[ns]値を変換することができ

In [25]: df 
Out[25]: 
    Record_ID      Time 
0  94704 2014-03-10 07:19:19.647342 
1  94705 2014-03-10 07:21:44.479363 
2  94706 2014-03-10 07:21:45.479581 
3  94707 2014-03-10 07:21:54.481588 
4  94708 2014-03-10 07:21:55.481804 

In [26]: type(df['Time'][0]) 
Out[26]: pandas.tslib.Timestamp 

In [27]: df['Time'] = df['Time'].apply(lambda x: x.replace(microsecond=0)) 

In [28]: df 
Out[28]: 
    Record_ID    Time 
0  94704 2014-03-10 07:19:19 
1  94705 2014-03-10 07:21:44 
2  94706 2014-03-10 07:21:45 
3  94707 2014-03-10 07:21:54 
4  94708 2014-03-10 07:21:55 
+0

これはまさに私が探していたものです。 – emax

7

-

df['Time'] = df['Time'].apply(lambda x: x.replace(microsecond=0)) 

デモ:パンダのデータフレームの列にこれらdatetime64[s]値を再割り当てすること

In [11]: df['Time'] = df['Time'].values.astype('datetime64[s]') 

In [12]: df 
Out[12]: 
    Record_ID    Time 
0  94704 2014-03-10 07:19:19 
1  94705 2014-03-10 07:21:44 
2  94706 2014-03-10 07:21:45 
3  94707 2014-03-10 07:21:54 
4  94708 2014-03-10 07:21:55 

注意自動的にそれらをdatetime64[ns]に戻すので、最終結果はまだとして保存されます。の値が返されますが、astypeを呼び出すと秒の小数部分が削除されます。

+0

pandasは 'datetime64 [ns]'のみをサポートしていますか?精度を変更する方法が組み込まれていますか?日付だけが好きですか? – mnky9800n

+1

@ mnky9800n:現在、パンダのNDFramesは 'datetime64 [ns]'のみをサポートしています。 – unutbu

+0

他の日時をサポートする計画はありますか?私はdatetime64 [ns]の範囲は〜600年しかないので、明らかな理由があると思います。 – mnky9800n