2017-07-14 22 views
-1

私のdfには以下のような日付の列(オブジェクト)があります。YYYY-MM-DD Pythonのユリウス日の日付

この列を変換するか、YYDDDの形式で5桁のジュリアン日付を含む新しい日付列を作成する必要があります。パイソン/パンダ

日付でこれを行う方法がわからない:

2016-03-28   
2016-03-11   
2016-03-12   
2016-03-23   
2016-03-04   
2016-03-02   
2016-03-30   
2016-03-30   
2016-03-13   
2016-03-13 

基本的に私は、最初のDF [「日付」]列どこのdf [」のオフに基づいて、私のDFでの新しい列を作成したいですdate2 ']が目的の形式になっています。

ので、日付1 = "2016年3月28日" 日付2 = 16088

+1

をここでは、[質問](https://stackoverflow.com/q/36156582/です945456)、別の日付/時刻値に基づいて新しい列を追加します。それはあなたが始めるのを助けるかもしれません。 ['.dt.dayofyear'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.dayofyear.html#pandas.Series.dt.dayofyear)を使用することができます。 )。あなたが何処にいるのか正確に示すための小さなコード(たとえば、新しい列の作成と日付の処理)は役に立ちました。 –

+2

[Julian Date](https://en.wikipedia.org/wiki/Julian_day)のアイデアは非常に特殊なものです – gboffi

+2

[Pythonで文字列の日付から日とジュリアンデイを抽出](https:///stackoverflow.com/questions/13943062/extract-day-of-year-and-julian-day-from-a-string-date-in-python) –

答えて

2

あなたはstrftimeを使用することができ、http://strftime.org/を確認してください。

df = pd.DataFrame({'date': pd.date_range('2016-03-28', periods=5)}) 
print (df) 
     date 
0 2016-03-28 
1 2016-03-29 
2 2016-03-30 
3 2016-03-31 
4 2016-04-01 

df['newFormat'] = df['date'].dt.strftime('%y%j') 
print (df) 
     date newFormat 
0 2016-03-28  16088 
1 2016-03-29  16089 
2 2016-03-30  16090 
3 2016-03-31  16091 
4 2016-04-01  16092 
1

私は何のpython /パンダの専門家だが、以下はあなたのために働くかもしれとき:

import pandas as pd 
df = pd.DataFrame({'date': pd.date_range('2016-03-28', periods=5)}) 
df['paddedDay'] = df['date'].dt.dayofyear.apply(lambda x: str(x).zfill(3)) 
df['lastTwoOfYear'] = df['date'].dt.year.apply(lambda x: str(x)[-2:]) 
df['newFormat'] = df['lastTwoOfYear'].map(str) + df['paddedDay'] 

これは、次を生成。

 date paddedDay lastTwoOfYear newFormat 
0 2016-03-28  088   16  16088 
1 2016-03-29  089   16  16089 
2 2016-03-30  090   16  16090 
3 2016-03-31  091   16  16091 
4 2016-04-01  092   16  16092 

私はあなたにこれを行う良い方法があると確信しています(一時的な列を避ける方法があります)。これはパンダのために何かを書くのは初めてのことですので、混乱を許してください。もし誰かがdownvoteに誘惑されたら、私は彼らに私たちにもっと良い解決策を示すように挑戦します。私はこれを行うための正しい方法を見てみたい:)

+0

助けてくれてありがとう。これは、あなたが物をどのように壊したかを見て、希望のフォーマットを形成するために一緒に作品を置くのに便利です。 – nakedbird226

+0

@ nakedbird226ようこそ。つまり、「strftime」を使ったjezraelの答えははるかに良い答えであり、受け入れられるはずです。 –

関連する問題