pandasで、データフレームに対し、同様のフォーマットだったら全部置換したい、的な手法=applymap
はい、データフレーム使ってますか?
便利ですね、pandas。
ということで、今回の要件はこんな感じです。
要件:
データフレーム上では全てのデータをそのまま扱いたいが、
csvなどで出力するときは日付のフォーマットを全部固定差し替えしたい。
調べてみると、applymapというものが使えそうなんですが、これ指定の仕方がちょっと面白い。
df = df.applymap(function)
直接、function(関数)をぶっこみます。
ここで指定する関数はlambdaでも、defでもよいのですが、こんな感じになります。
formatted = {変換したいdf}.applymap(_format_date_time)
このようにすることで、内部関数「_format_date_time」をapplymapに突っ込んで、
変換したいdfの中身のうち、datetime型のものだけ出力を「YYYY/MM/DD」型に置換します。
慣れるとかなり強力です。
はい、データフレーム使ってますか?
便利ですね、pandas。
ということで、今回の要件はこんな感じです。
要件:
データフレーム上では全てのデータをそのまま扱いたいが、
csvなどで出力するときは日付のフォーマットを全部固定差し替えしたい。
調べてみると、applymapというものが使えそうなんですが、これ指定の仕方がちょっと面白い。
df = df.applymap(function)
直接、function(関数)をぶっこみます。
ここで指定する関数はlambdaでも、defでもよいのですが、こんな感じになります。
def _format_date_time(value):
if isinstance(value, datetime):
return value.strftime('%Y/%m/%d')
else:
return value
formatted = {変換したいdf}.applymap(_format_date_time)
このようにすることで、内部関数「_format_date_time」をapplymapに突っ込んで、
変換したいdfの中身のうち、datetime型のものだけ出力を「YYYY/MM/DD」型に置換します。
慣れるとかなり強力です。
コメント