使用pd.to_numeric转换DataFrame列报错:值长度与索引不匹配
问题解决:pd.to_numeric转换列报错的原因与修复
错误原因
你写的代码里,把列名字符串组成的列表['Value']传给了pd.to_numeric,而不是DataFrame中对应的列数据。pd.to_numeric处理这个单元素列表后,只会返回一个长度为1的结果,和你的DataFrame的54行索引长度不匹配,所以触发了ValueError。
修复代码
直接传入df_global['Value']这个Series对象即可,正确代码如下:
df_global['Value'] = pd.to_numeric(df_global['Value'], errors='coerce')
补充说明
pd.to_numeric的第一个参数需要是一维的可迭代对象(比如Series、列表、数组),这里传入DataFrame的列(Series)才是正确的做法。errors='coerce'参数会把无法转换为数值的内容转为NaN,如果不需要这个行为,可以改成errors='raise'(默认)或者errors='ignore'。
内容的提问来源于stack exchange,提问作者rcmv
相关产品推荐
相关产品推荐

