【发布时间】:2021-03-25 14:38:49
【问题描述】:
我对 Python 和 Pandas 非常陌生,希望能获得一些帮助,使用 for 循环为 Date 添加一列。我已经尝试了下面的代码,以及该代码的一些变体,但总是收到错误。我为“Day”添加了一个列,这样我就可以返回一个日期;但后来我删除了该列。
对于 SAP Period = 0 的行,我想返回 1/1/YYYY。对于所有其他行,我想返回该月的最后一天。
for y in df_BW['SAP Period']:
if y == 0:
df_BW['Period'] = pd.to_datetime(df_BW[['Day', 'SAP Period2', 'Year']].astype(str).apply(' '.join, 1), format='%d %m %Y')
else:
df_BW['Period'] = pd.to_datetime(df_BW[['Day', 'SAP Period', 'Year']].astype(str).apply(' '.join, 1), format='%d %m %Y') + MonthEnd()
| Year | SAP Period | Date |
|---|---|---|
| 2020 | 0 | 1/1/2020 |
| 2020 | 1 | 1/31/2020 |
| 2020 | 2 | 2/29/2020 |
| 2020 | 0 | 1/1/2020 |
| 2020 | 2 | 2/29/2020 |
| 2020 | 2 | 2/29/2020 |
| 2020 | 3 | 3/31/2020 |
| 2020 | 12 | 12/31/2020 |
| 2021 | 0 | 1/1/2021 |
| 2021 | 1 | 1/31/2021 |
| 2021 | 3 | 3/31/2021 |
| 2021 | 0 | 1/1/2021 |
| 2021 | 2 | 2/28/2021 |
| 2021 | 3 | 3/31/2021 |
【问题讨论】:
标签: python pandas python-datetime