【发布时间】:2018-05-02 17:06:07
【问题描述】:
我对这一切都很陌生,所以提前抱歉:
我有一个如下所示的数据框:
Issuance Issue Date Date Spread
1 1 12/31/2018 12/31/2018 3.42
2 1 12/31/2018 1/31/2019 3.45
3 1 12/31/2018 2/28/2019 3.49
4 1 12/31/2018 3/31/2019 3.52
5 1 12/31/2018 4/30/2019 3.56
6 1 12/31/2018 5/31/2019 3.59
7 2 3/31/2019 3/31/2019 3.52
8 2 3/31/2019 4/30/2019 3.56
9 2 3/31/2019 5/31/2019 3.59
我有一个发行和点差列表,我想创建一个新列“固定点差”以在“发行日期”等于“日期”并在所有日期保持固定时返回点差,如下所示:
Issuance Issue Date Date Spread Fixed Spread
1 1 12/31/2018 12/31/2018 3.42 3.42
2 1 12/31/2018 1/31/2019 3.45 3.42
3 1 12/31/2018 2/28/2019 3.49 3.42
4 1 12/31/2018 3/31/2019 3.52 3.42
5 1 12/31/2018 4/30/2019 3.56 3.42
6 1 12/31/2018 5/31/2019 3.59 3.42
7 2 3/31/2019 3/31/2019 3.52 3.52
8 2 3/31/2019 4/30/2019 3.56 3.52
9 2 3/31/2019 5/31/2019 3.59 3.52
我已经很接近了:
df['fixed_spread'] = df.loc[df['Issue Date'].idxmin(), 'spread']
这符合我最初的要求,但它只查看整个数据帧的第一次发布(因此,对于上面的 df 示例中的所有行,'fixed spread' 列将保持在 3.42)。
对实现我想要的有什么建议吗?
【问题讨论】:
-
3/31/2018 != 3/31/2019但已为该行设置了固定点差。你能检查一下吗? -
抱歉!我实际 df 中的第二个发行日期是 3/31/2019
-
您能否修复您的数据,以便我将其复制到答案中?
-
是的 - 完成了!谢谢!
标签: python pandas dataframe conditional-statements equality