pandas dataframe set index 失效的问题,主要是指的 set_index()函数指定了column_name,但是展示或者使用数据dataframe的时候index依旧是默认以0,1,2…数字形式的序列,例如以下代码及其效果
import pandas as pd data = pd.read_csv("../Desktop/TSLA.csv") data.set_index(pd.DatetimeIndex(data['Date'].values)) data.shape print(data.head(2))
Date Open ... Dividends Stock Splits 0 2020-06-01 00:00:00 171.600006 ... 0 0.0 1 2020-06-02 00:00:00 178.940002 ... 0 0.0
这个问题主要是使用者对pandas的api不够了解或者没有自信阅读API文档导致的,在官方的函数方法说明中清清楚楚的写着,set_index的返回值是一个dataframe或者是空,而如果是空的话其中的inplace参数必须是True。

至此我们可以得出结论,有两种方式来解决 pandas.DataFrame.set_index(“col_name“)失效问题,分别如下代码两种方式设置了index之后的dataframe数据效果
data.set_index(pd.DatetimeIndex(data['Date'].values), inplace=True) data data.set_index(pd.DatetimeIndex(data['Date'].values))
Date Open ... Dividends Stock Splits 2020-06-01 2020-06-01 00:00:00 171.600006 ... 0 0.0 2020-06-02 2020-06-02 00:00:00 178.940002 ... 0 0.0