私はデータフレームp_mdを持っています。インデックスはDateTimeです。私はFinishという新しい列を作成したい。インデックスがその日の午後5時より前であれば、その列の値はその日の午後11時である。それ以外の場合は、5PM後に、Finishカラムの値はNEXT日の午後11時です。私がこれまで持って何パンダのデータフレームにシリーズを追加する
:私はこれを行うと
p_md["Finish"] = pd.Timestamp(datetime(p_md.index.year, p_md.index.month, p_md.index.day, 23, 0, 0))
p_md.loc[(p_md.index.hour > 17), "Finish"] = p_md.Finish + pd.Timedelta(days=1)
私はdatetime型のコンストラクタがintの代わりにint64Indexを取得していることを示す例外TypeErrorを取得します。私はしかし、それだけで、データフレームの値の最初の行を使用して、
p_md["Finish"] = pd.Timestamp(datetime(p_md.index.year[0], p_md.index.month[0], p_md.index.day[0], 23, 0, 0))
これはコンパイルされ、実行に行を変更おそらく[0]。
表の作成コード要求:私が正しくあなたを理解していれば、私は「フィニッシュ作成し
df = pd.DataFrame()
df['DateTime'] = pd.date_range("1/1/2017", periods=500, freq="H")
df.set_index("DateTime", inplace=True)
df["Test"] = 0
サンプルデータフレームを生成するコードを提供できますか? –
@DancePartyあなたの要求に応じてテーブル作成コードを追加しました – sid