web-dev-qa-db-ja.com

pandasデータフレームでタイムスタンプをdatetime.dateに変換するにはどうすればよいですか?

日付に2 pandasデータフレームを一緒にマージする必要がありますが、現在異なる日付タイプがあります。1はタイムスタンプ(Excelからインポート)、もう1つは_datetime.date_です。

何かアドバイス?

私はpd.to_datetime().dateを試しましたが、これは単一のアイテム(たとえば_df.ix[0,0]_)でのみ機能し、シリーズ全体(たとえば_df['mydates']_)またはデータフレームに適用できません。

8
Afo B

同僚から助けをもらいました。

これは上記の問題を解決するようです

pd.to_datetime(df['mydates']).apply(lambda x: x.date())

15
Afo B

別の質問はこれを指しているduとしてマークされていましたが、この答えは含まれていませんでしたが、これは最も簡単なようです(この質問が投稿/回答されたとき、この方法はまだ存在していなかったのでしょう):

pandas docは pandas.Timestamp.to_pydatetime 「タイムスタンプオブジェクトをネイティブPython datetimeオブジェクトに変換)」メソッド。

1
codingatty

同様の問題に遭遇したとき、次のことが最も効果的であることがわかりました。たとえば、df列に一連のtimestmapsを含むデータフレームtsを使用します。

_df.ts.apply(lambda x: pd.datetime.fromtimestamp(x).date())
_

これにより変換が行われます。日付時刻の.date()接尾辞は省略できます。次に、データフレームの列を変更します。そのようです...

_df.loc[:, 'ts'] = df.ts.apply(lambda x: pd.datetime.fromtimestamp(x).date())
_
0
BrotherJack

datetime.dateオブジェクトが必要な場合は、Timestamp.date属性を使用してオブジェクトを取得します。

pd.to_datetime(df['mydates']).date
0
piRSquared