Pandas拆分列后提取列表元素报ValueError长度不匹配问题求助
报错解释与修正方案
报错含义
你遇到的ValueError: Length of values (4) does not match length of index (179)通俗来讲就是:你试图给新列job1month赋值的内容只有4个元素,但你的数据集总共有179行,两边数量对不上,Pandas不知道怎么把4个内容填到179个格子里,所以抛出错误。
操作错误点
你写的employees["jobDateRange"][0]逻辑完全错了:这个写法的作用是提取jobDateRange这一列的第一行的完整列表,不是提取每一行列表的第一个元素。
你拆分后第一行的jobDateRange刚好是长度为4的[Aug, 2013, –, Present],相当于你想把这4个值塞到179行的新列里,自然就报长度不匹配的错。
正确写法
如果要逐行取每个列表的第N个元素,需要用Pandas提供的.str索引器,对应你要取第一个元素的需求,代码如下:
employees["job1month"] = employees["jobDateRange"].str[0]
后续如果要提取第二个元素(任职起始年份)改成.str[1]即可,以此类推。
内容的提问来源于stack exchange,提问作者Josh Dan
相关产品推荐
相关产品推荐

