2017-06-06 6 views
2

私はpython/pandasの日付形式に変換するのに助けが必要です。例えば、私の時間は次の行のように保存されます。パンダで日時フォーマットに変換しますか?

2017-01-01 05:30:24.468911+00:00 
..... 
2017-05-05 01:51:31.351718+00:00 

と私は、日付時刻形式にこれを変換する最も簡単な方法を知ってほしい、基本的に時間と操作を行うための(範囲は私の日であるかのように私のデータセットを時間別に分割するデータセット、ある時間から別の時間の違いは何ですか?物事が楽になる時代の重要性を失うことは気にしない。どうもありがとうございます!

+1

あなたは文字列としてそれらを保存していますか?そうであれば、 'strptime()'を使ってオブジェクトに示された時間を区切り、それらのオブジェクトのメンバに対して操作を行うことができます。 オブジェクトのメンバーは、メソッドに渡す書式設定文字列によって決定されます。詳細については、[this](https://docs.python.org/3.6/library/time.html#time.strptime)のドキュメントを参照してください。 – nerdenator

+0

はい、文字列として保存されます。申し訳ありません指定しないでください。私はstrptime()を試みます。ありがとう! –

答えて

2

Timestampウィル私はあなたのためにそれを変換する。

>>> pd.Timestamp('2017-01-01 05:30:24.468911+00:00') 
Timestamp('2017-01-01 05:30:24.468911+0000', tz='UTC') 

のは、あなたのタイムスタンプ列が含まれるデータフレームを持っているとしましょう(のはそれstampを呼びましょう)。あなたはTimestampと一緒に、その列にapplyを使用することができます。

df = pd.DataFrame(
    {'stamp': ['2017-01-01 05:30:24.468911+00:00', 
       '2017-05-05 01:51:31.351718+00:00']}) 
>>> df 
    stamp 
0 2017-01-01 05:30:24.468911+00:00 
1 2017-05-05 01:51:31.351718+00:00 

>>> df['stamp'].apply(pd.Timestamp) 
0 2017-01-01 05:30:24.468911+00:00 
1 2017-05-05 01:51:31.351718+00:00 
Name: stamp, dtype: datetime64[ns, UTC] 

ます。またTimeseriesを使用することができます。

>>> pd.TimeSeries(df.stamp) 
0 2017-01-01 05:30:24.468911+00:00 
1 2017-05-05 01:51:31.351718+00:00 
Name: stamp, dtype: object 

あなたがTimestampオブジェクトを持っていたら、操作することはかなり効率的です。たとえば、その値が違います。

タイムゾーンが認識できない値を説明しているSO answerをご覧ください。パンダタグ以来

2

私は2つの文字列2017-06-061944-06-06を持っていて、2つの間に違い(Pythonが何をtimedeltaと呼んでいるか)を得たいとします。

まず、import datetimeが必要です。

>>> a = datetime.datetime.strptime('2017-06-06', '%Y-%m-%d') 
>>> b = datetime.datetime.strptime('1944-06-06', '%Y-%m-%d') 

私たちtimedeltaオブジェクトを返します。算術関数で使用できる2つのDateTimeオブジェクト与える:

>>> c = abs((a-b).days) 

をそれから私はdatetimeオブジェクトにこれらの文字列の両方を取得する必要がありますこれは、私たちに26663を与えるだろう、とdaystimedeltaがサポートする最大解像度:documentation

1

があります:

df = pd.DataFrame(['2017-01-01 05:30:24.468911+00:00']) 
df.columns = ['Datetime'] 
df['Datetime'] = pd.to_datetime(df['Datetime'], format='%Y-%m-%d %H:%M:%S.%f', utc=True) 
print(df.dtypes) 
関連する問題