重命名pandas数据帧的最后一个索引并强制执行dtypes

时间:2017-02-14 16:12:36

标签: python pandas dataframe

我怀疑。我有一个数据帧df,我需要更改最后一行的索引,这可能很容易,但我遇到了麻烦:

<?php
    echo "3";
?>

我需要在今天的日期2017-02-14的最后一行更改“0”索引,我该怎么做?

我试过了:

              A    B
2017-02-09   2.4  3.4
2017-02-10   3.4  3.2 
2017-02-13   3.3  2.2
0            3.1  2.1

其中dt代表日期时间。它不起作用,任何想法?非常感谢你

2 个答案:

答案 0 :(得分:2)

您可以使用DF.renamedict映射来更改索引轴上的标签,如下所示:

import datetime

df.rename({df.index[-1]: datetime.date.today()}, inplace=True)
df.index = pd.to_datetime(df.index)   # Convert dtype to DateTimeIndex

enter image description here

检查dtypes

df.index.dtype
dtype('<M8[ns]')

注意: 您无法使用set_index[..],因为这些引用了不可订阅的内置方法。相反,您必须像set_index(..)一样用括号括起来。

通过将索引转换为系列代码并replacing将最后一个值转换为今天的日期,以简洁的方式强制单行dtypes

df.index = pd.to_datetime(df.index.to_series().replace({df.index[-1]:datetime.date.today()}))

给出:

df.index
DatetimeIndex(['2017-02-09', '2017-02-10', '2017-02-13', '2017-02-14'],
              dtype='datetime64[ns]', freq=None)

答案 1 :(得分:0)

ind = df.index.tolist()
ind[len(ind)-1] = dt.date.today()
df.index = ind