读取CSV生成Pandas Series时指定索引列报错Index name invalid求助
问题分析与解决
错误原因
你犯了参数搭配的逻辑错误:
- 你通过
index_col='name'要求Pandas将name列作为DataFrame的索引 - 但同时用
usecols=['type1']限制了只读取type1这一列
这就导致Pandas无法找到用于创建索引的name列,因此抛出ValueError: Index name invalid错误。
修复方案
方案一:修正usecols参数,包含索引列
把name列也加入usecols的列表中,让Pandas能读取到索引列:
import pandas as pd indexed_series = pd.read_csv('./pokemon.csv', index_col='name', usecols=['name', 'type1']).squeeze()
方案二:先加载指定列,再设置索引转Series
如果觉得参数搭配容易混淆,可以分步骤操作,可读性更强:
import pandas as pd # 先加载需要的两列 df = pd.read_csv('./pokemon.csv', usecols=['name', 'type1']) # 设置索引并提取type1列转为Series indexed_series = df.set_index('name')['type1'].squeeze()
两种方案都能实现你想要的效果:生成以name为索引、type1为值的Pandas Series。
内容的提问来源于stack exchange,提问作者Ankit Sahay
相关产品推荐
相关产品推荐

