如果生效日期 > 日期范围,则返回 0

我有以下几点:


df1['Effective_Date']

df1['Amount']


Date_Range = pd.date_range('12/31/2017', periods=150, freq='M')

我正在尝试返回 df2(rows = 'Amount', columns = Date_Range) 其中:


if df1['Effective_Date'] > Date_Range, return 0

例如,金额 = 100 美元,生效日期 = 3/1/18,那么它将在 2/28/18 和之前返回 0 美元,在 3/31/18、4/30/18、5/31/18 等返回 100 美元。


我打算用 df1['Amount'] 填充一个数据框,然后尝试在生效日期之前收回金额:


创建数据框:


df2 = pd.DataFrame(df1['Amount'], columns = Date_Range)

要使 > 生效日期 = 0:


df2[df1['Effective_Date'].astype(int) > df2] = 0

我收到以下错误:


传递值的形状是 (1, 1217),索引表示 (150, 1217)

不能从 [datetime64[ns]] 到 [int32] 输入类似日期时间

我显然是个业余爱好者。非常感谢你的帮助。


互换的青春
浏览 165回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python