尝试替换熊猫数据框中的日期时,df.replace没有任何作用

时间:2018-10-28 13:02:01

标签: pandas dataframe replace

我已经在这里浏览过有关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日,但它仍然没有执行任何操作。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

尝试'.astype(str).replace'

df.date.astype(str).replace('2016-12-31', '2018-06-31')