Python:将datetime64[ns]替换为pandas中的索引

2024-04-25 13:26:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将最后一个日期(索引)从2017-06-18替换为date_replace,后者是datetime64格式。但是,当我替换它时出现错误,代码如下:

>>> date_replace
0   2017-06-19
Name: trading_day, dtype: datetime64[ns]


           Stock      Open      High       Low     Close Adj Close  Volume
Date                                                                      
2017-06-13   AD  5.230000  5.260000  5.200000  5.260000  5.260000    5000
2017-06-16   AD  5.220000  5.260000  5.220000  5.260000  5.260000    6000
2017-06-17   AD  5.210000  5.560000  5.210000  5.560000  5.560000    200
2017-06-18   AD  5.200000  5.250000  5.200000  5.250000  5.250000    9000  

>>> df.index[-1] = date_replace
TypeError: Index does not support mutable operations

>>> import datetime
>>> df.rename({df.index[-1]: datetime.date.date_replace()}, inplace = True)
AttributeError: type object 'datetime.date' has no attribute 'date_replace'

我想要的输出:

           Stock      Open      High       Low     Close Adj Close  Volume
Date                                                                      
2017-06-13   AD  5.230000  5.260000  5.200000  5.260000  5.260000    5000
2017-06-16   AD  5.220000  5.260000  5.220000  5.260000  5.260000    6000
2017-06-17   AD  5.210000  5.560000  5.210000  5.560000  5.560000    200
2017-06-19   AD  5.200000  5.250000  5.200000  5.250000  5.250000    9000  

那么,如何在没有错误和相同格式的情况下优雅地替换日期呢?你知道吗


Tags: dfclosedatetimedate格式错误stockopen
1条回答
网友
1楼 · 发布于 2024-04-25 13:26:15

使用pd.DataFrame.rename。您可以将字典传递给index参数,以指定将哪些索引重命名为哪些索引。你知道吗

df.rename(index={df.index[-1]: date_replace[0]})

           Stock  Open  High   Low  Close  Adj Close  Volume
Date                                                        
2017-06-13    AD  5.23  5.26  5.20   5.26       5.26    5000
2017-06-16    AD  5.22  5.26  5.22   5.26       5.26    6000
2017-06-17    AD  5.21  5.56  5.21   5.56       5.56     200
2017-06-19    AD  5.20  5.25  5.20   5.25       5.25    9000

​

相关问题 更多 >