PandasのオフセットをPythonの日付に変換する方法
日付オブジェクトからPandasのオフセットを減算すると、結果は pandas Timestamp オブジェクトになります。このオブジェクトは、文字列形式の日付や、標準的なPythonの日付オブジェクト(datetime.date)に変換できます。また、datetime ライブラリの timedelta オブジェクトを使う方法もあります。
Timestampオブジェクトが生成される例
まず、日付からオフセットを引いたときにどのような型になるか確認してみましょう。
from pandas.tseries.frequencies import to_offset
import pandas as pd
dt = pd.to_datetime('2018-01-04') - to_offset("5D")
print(type(dt))出力
<class 'pandas._libs.tslib.Timestamp'>
このように、減算の結果は pandas.Timestamp 型になっていることがわかります。
文字列およびdateオブジェクトへの変換方法
このTimestampオブジェクトを指定した形式の文字列に変換するには strftime() 関数を使用します。標準的なPythonの date オブジェクトに変換したい場合は、オブジェクトに対して date() メソッドを呼び出します。
コード例
from pandas.tseries.frequencies import to_offset
import pandas as pd
dt = pd.to_datetime('2018-01-04') - to_offset("5D")
# 文字列として取得
print(dt.strftime('%Y-%m-%d'))
# Python標準のdateオブジェクトとして取得
print(dt.date())
print(type(dt.date()))出力
2017-12-30 2017-12-30 <class 'datetime.date'>
ポイントまとめ
to_offset("5D")を使うと、「5日」を表すオフセットを作成できます。- PandasのTimestampからオフセットを引くと、結果はTimestamp型になります。
strftime('%Y-%m-%d')で任意の書式の文字列に変換可能です。.date()を使えば、Python標準ライブラリのdatetime.dateオブジェクトに変換できます。
-
JavaScriptの日付をPythonの日付オブジェクトに変換する方法
JavaScriptの日付をPythonの日付オブジェクトに変換したくなる場面は、主にAJAXリクエストやNode.jsのIPCメッセージなど、ネットワーク経由でデータを送受信するときです。この場合、日付は文字列形式で表現され、任意のフォーマットで送信することができます。Python側ではstrptime()関数を使って、受け取った文字列を再び日付オブジェクトとして解析(パース)できます。また、ISO 8601のように標準化された形式で日付・時刻をやり取りするのがベストプラクティスです。ここでは、シンプルな例を使って具体的な手順を見ていきましょう。基本の変換例import datetime #
-
Pandasデータフレームを日付ごとに集計してプロットする方法
Pandasデータフレームを日付ごとに集計してグラフ化したい場合、groupby()とagg()を組み合わせることで簡単に実現できます。本記事では、Matplotlibを使って集計結果を棒グラフとして可視化するまでの具体的な手順を、サンプルコード付きで解説します。 手順 図のサイズを設定し、サブプロット間およびその周囲のパディング(余白)を調整します。 2次元で、サイズ変更可能、かつ異なるデータ型を含みうる表形式データを持つデータフレーム df を作成します。 groupby() と agg([sum]) を使って、日付ごとに値を集計したデータフレームを取得します。 kind=bar を指定