2017-11-29 15 views
1

私はパンダの学習者です。パンダを使用してデータフレームの日時フォーマットを変更するには?

私はカラム 'DATE'を持つデータフレームを持っています、カラムの日時フォーマットは'11/1/2017 1:00 'のようです。私は' から 『'11/2017分の1から1時の日時書式を変更する1〜12月 - 17 1時00』、私は次のコードを試してみました:

dir_path = os.path.dirname(os.path.realpath("__file__")) 
print(dir_path) 

def parse_dates(x): 
    return datetime.strptime(x, "%d-%b-%y %H:%M") 

df = pd.read_csv(dir_path+"/TEST.csv", parse_dates=['DATE'],date_parser=parse_dates) 

をしかし、それはエラーを示しています

ValueError: time data '11/1/2017 1:00' does not match format '%d-%b-%y %H:%M'

は、私もデータフレームを変換しようとしましたが、失敗しました:

df=pd.read_csv(dir_path+"/TEST.csv") 
df['DATE'] = pd.to_datetime(df['DATE'],format='%d-%b-%y %H:%M') 

ここでも、それがエラーを示しています

ValueError: time data '11/1/2017 1:00' does not match format '%d-%b-%y %H:%M' (match)

どのように問題を解決するには?あなたの時間をありがとう!

答えて

1
df=pd.DataFrame({'Time':[ '11/1/2017 1:00', '11/1/2017 1:00', '11/1/2017 1:00', '11/1/2017 1:00']}) 
df.Time=pd.to_datetime(df.Time).dt.strftime('%d-%b-%y %H:%M') 
df 
Out[870]: 
       Time 
0 01-Nov-17 01:00 
1 01-Nov-17 01:00 
2 01-Nov-17 01:00 
3 01-Nov-17 01:00 
+0

感謝温。 –

+0

@HavenShi yw :-) – Wen

0

簡単な答えは、formatのstrptime関数への引数が間違っていることです。あなたはdatetime.strptime(x, "%m-%d-%Y %H:%M")が欲しい。

また、すべての数字にパッドが付いていることを確認してください(1ヶ月間は、1の代わりに1のJanとしてください)。

日付を書式設定する方法の詳細については、python page for strptime formattingをご覧ください。

関連する問題