2016-08-01 10 views
0

データフレームに複数のdatettimeカラムがあり、datetimeをcsvにエクスポートすると、datetimeを月/日/年から月/年に変換する必要があります。これは可能ですか?Pandas DataframeとDateTimeオブジェクトの変換

私はこれをしようとしていた:私は、エクスポートされたCSVを見てみると

if date_mask == "MMM": 
    df[name].apply(lambda x: x.strftime('%b %Y')) 
else: 
    df[name].apply(lambda x: x.strftime('%m %Y')) 

は、私はまだ古い日時の値を参照してください。

これを行う方法に関するアイデアはありますか?

おかげ

########################################すべてのヘルプのため##################

ソリューション

def modify_date(x): 
    try: 
     if pd.isnull(x) == False: 
      return x.strftime('%b %Y') 
     else: 
      print pd.NaT 
    except: 
     return pd.NaT 

df = pd.DateFrame.from_records(<some list from database>) 

df[name] = df[name].apply(modify_date) 

ありがとう!すべての助けを

+0

df [name] 'df [name] = df [name] .apply(lambda x:x.strftime( '%m%Y'))' – bernie

+0

結果を割り当てる必要があります'apply'メソッドの' DataFrame'を変更しないためです。 –

+0

@bernie私はそれを試してみましょう! –

答えて

0

ソリューション

def modify_date(x): 
    try: 
     if pd.isnull(x) == False: 
      return x.strftime('%b %Y') 
     else: 
      print pd.NaT 
    except: 
     return pd.NaT 

df = pd.DateFrame.from_records(<some list from database>) 

df[name] = df[name].apply(modify_date) 

ありがとう!

+0

@bernie - この回答は非常に遅く、スクリプトは400Kレコードを1分から4分にします6つのdatetime列があります。どのようにこれをスピードアップするためのアイデア? –

+0

これは動作しません: 'df [name] = df [name] .dt.strftime( '%b%Y')'? – ptrj

+0

@ptrj:そこにNaTがあるからです。 – bernie

関連する問題