我已经从CSV文件创建了原始数据帧
df = pd.read_csv(r'C:\Users\Sam\cars.csv')
它生成具有以下列的df
Index(['mpg', 'cylinders', 'displacement', 'horsepower', 'weight',
'acceleration', 'model_year', 'origin', 'name'],
dtype='object')
我可以将其中一列设置为索引
df.set_index('cylinders')
然后,我成功地创建了这个原始df的副本,并插入了一个组合名称年份列
df_name = df.copy()
df_name ['name_year'] = df.name + ' - 19' + df.model_year.astype(str)
然而,无论何时尝试将一列指定为索引,无论是新的name\u year列还是其他列,我都会遇到相同的keyrerror消息
df_car_index = df_name.copy()
df_car_index = df_car_index.set_index('horsepower', inplace=True)
df_car_index
KeyError: "None of ['horsepower'] are in the columns"
您只需要运行这部分代码一次。当该列被设置为索引并再次运行代码时,将出现错误
将列设置为索引时,它将移动到索引中并从列中删除。因此
set_index()
只需要在通过inplace=True
时运行一次,使其成为永久性更改如果要恢复索引更改,可以执行
df.reset_index(inplace=True)
。移动到索引的列将重新添加到列中。与set_index()
一样,此代码只需运行一次,重新运行会导致错误您可以找到如何设置自定义索引并将其还原回on this tutorial by Data School的演示
另一个要点是:如果您尝试在从其中一列设置的自定义索引上添加另一个索引,它将覆盖自定义索引列,并有效地将其删除
相关问题 更多 >
编程相关推荐