我已经在这里浏览过有关df.replace的各种评论,但是我仍然无法使其正常工作。
这是我的代码的片段:
# Name columns
df_yearly.columns = ['symbol', 'date', ' annuual % price change']
# Change date format to D/M/Y
df_yearly['date'] = pd.to_datetime(df_yearly['date'], format='%d/%m/%Y')
df_yearly数据帧如下:
| symbol | date | annuual % price change
---|--------|------------|-------------------------
0 | APX | 12/31/2017 |
1 | APX | 12/31/2018 | -0.502554278
2 | AURA | 12/31/2018 | -0.974450706
3 | BASH | 12/31/2016 | -0.998110828
4 | BASH | 12/31/2017 | 8.989361702
5 | BASH | 12/31/2018 | -0.083599574
6 | BCC | 12/31/2017 | 121718.9303
7 | BCC | 12/31/2018 | -0.998018734
我想将2018年12月31日的所有日期替换为2018年6月30日。我的代码的下一部分是:
# Replace 31-12-2018 with 30-06-2018 as this is final date in monthly DF
df_yearly_1 = df_yearly.date.replace('31-12-2018', '30-06-2018')
print(df_yearly_1)
但是输出仍然是:
| 0 | 2017-12-31
| 1 | 2018-12-31
| 2 | 2018-12-31
| 3 | 2016-12-31
| 4 | 2017-12-31
| 5 | 2018-12-31
有人可以帮助我吗?我以为这可能与我在df.replace语句中使用不正确的日期格式有关,但我尝试搜索并替换2018年12月31日,但它仍然没有执行任何操作。
提前谢谢!
答案 0 :(得分:1)
尝试'.astype(str).replace'
df.date.astype(str).replace('2016-12-31', '2018-06-31')