在pandas df中设置索引而不创建重复列

时间:2017-12-28 07:46:17

标签: python pandas python-3.6

我的数据框如下所示:

In [120]: data.head()
Out[120]: 
         date   open   high    low  close  volume
0  2017-08-07  2.276  2.276  2.253  2.257     0.0
1  2017-08-08  2.260  2.291  2.253  2.283     0.0
2  2017-08-09  2.225  2.249  2.212  2.241     0.0
3  2017-08-10  2.241  2.241  2.210  2.212     0.0
4  2017-08-11  2.199  2.222  2.182  2.189     0.0

完成后:

data.index = pd.to_datetime(data['date'])

我最终得到了这个:

In [122]: data.head()
Out[122]: 
                  date   open   high    low  close  volume
date                                                      
2017-08-07  2017-08-07  2.276  2.276  2.253  2.257     0.0
2017-08-08  2017-08-08  2.260  2.291  2.253  2.283     0.0
2017-08-09  2017-08-09  2.225  2.249  2.212  2.241     0.0
2017-08-10  2017-08-10  2.241  2.241  2.210  2.212     0.0
2017-08-11  2017-08-11  2.199  2.222  2.182  2.189     0.0

我怎样才能避免以重复的日期列结束?感谢你的帮助。 (熊猫0.21.1)

2 个答案:

答案 0 :(得分:2)

首先转换为日期并使用.set_index()

data['date'] = pd.to_datetime(data['date'])
data.set_index('date', inplace=True)
print(data)

输出:

             open   high    low  close  volume
date                                          
2017-08-07  2.276  2.276  2.253  2.257     0.0
2017-08-08  2.260  2.291  2.253  2.283     0.0
2017-08-09  2.225  2.249  2.212  2.241     0.0
2017-08-10  2.241  2.241  2.210  2.212     0.0
2017-08-11  2.199  2.222  2.182  2.189     0.0

inplace=True会修改您的data,而不是创建新的数据框。

答案 1 :(得分:1)

我正在使用drop而不是inplace。也适用。

data ['date'] = pd.to_datetime(data ['date'])

data.set_index('date',drop = True)

将drop属性设置为True时,会删除要用作新索引的列