2017-08-24 32 views
1

シナリオ: Excelワークシートから複数の列を取得したデータフレームがあります。これらの列の中には日付を見ているものもあれば、日付(yyyy:mm:dd)と日付とタイムスタンプ(yyyy:mm:dd 00.00.000000)のものがあります。pandasデータフレームのdatetimeからタイムスタンプを削除する

質問:質問:データフレームのインデックスではない日付からタイムスタンプを削除するにはどうすればよいですか?私はすでに試した何

pd.DatetimeIndex(dfST['timestamp']).date 

strfitme (df['timestamp'].apply(lambda x: x.strftime('%Y-%m-%d')) 

をしかし、私は方法を見つけるように見えることはできません。ここでは他の記事からをSO(working with dates in pandas - remove unseen characters in datetime and convert to stringHow to strip a pandas datetime of date, hours and seconds)には、私が見つかりました。自分のデータフレームのインデックスでない場合は、それらを直接使用することができます。

+2

あなたはすでにあなたが 'DatetimeIndex'を作成する必要はありませんdatetime型に変換した場合。 'dfST ['timestamp'] = dfST ['timestamp']。dt.date' –

+0

それぞれの列のdtypeは何ですか? 「あなたが望むのは、自分のデータフレームのインデックスでないときに、希望の列に直接使用する方法を見つけることができないようです。」 –

+0

@AndrewLちょっと試してみました。「AttributeError:Can " – DGMS89

答えて

1

次の操作を行うことができます

dfST['timestamp'] = pd.to_datetime(dfST['timestamp']) 

to_datetime()は、日付列の書式を推測します。列に日付以外の値が含まれている場合は、errors='coerce'を渡すこともできます。

上記を完了した後、あなただけの日付値を含む新しい列を作成できるようになります:

dfST['new_date_column'] = dfST['timestamp'].dt.date 
+1

Coerceがトリックをしました、多くのありがとう。 – DGMS89

関連する問題