2017-03-03 9 views
-3

私はMM/DD/YYYY形式でいくつかのエントリとDD-MM-YYYY形式でいくつかのエントリを持つCSVファイルのいくつかのデータを持っています。このエントリーの列を読んで、それをpandasデータフレームの新しい列として保存したいと思いますか?私はこれについてどうやって行くのですか?変換MM/DD/YYYYからDD-MM-YYYに

例:

Entry  Sampling Date 
    1   01-10-2004 
    2   01-13-2004 
    3   16/1/2004 

Iは、3行目のものに最初の2つの行日付形式を変換したいと思います。

+0

'.replaceそれを適用します( "/"、 " - ")を'? – WhatsThePoint

+1

@WhatsThePoint:と –

+0

@MartijnPietersは、はい、私は – WhatsThePoint

答えて

1

は、datetimeモジュールを使用して関数を定義して、あなたのコラムに

import datetime.datetime 

def read_date(string): 
    if '/' in entry: 
     date = datetime.datetime.strptime(string,'%m/%d/%Y') 
    elif '-' in entry: 
     date = datetime.datetime.strptime(string, '%d-%m-%Y') 
    return date 

# If df is your dataframe 
df['newdate'] = df['Sampling Date'].apply(read_date) 
+0

私はこれが動作すると思います。私は上記のコメントで述べたように年をフルに記載されていませんが、、2004年1月3日は、03-01-04のように書かれています。これは私にエラーを与える。あなたの例で示したものではありません – Raghuram

+0

...その後、単に%yだけ%Yを交換し、それはトリックを行います。もちろん、あなたが完全な年で切り捨て年および他でいくつかのラインを持っている場合、あなたは – LoicM

+0

を解析するためにどの方法を選択するかの句を加える必要がありますはい、私はそれは私が例で示したものではないのです実現します。私の悪い。答えをありがとう。それは今働く – Raghuram