Pandas Series追加值报错:无法拼接非NDframe对象,求解决方法
解决Pandas Series追加单个值时的报错问题
你遇到的这个报错是因为Pandas的Series.append()方法要求传入的是另一个NDFrame对象(比如Series或DataFrame),而不是单个数值。直接传35不符合方法的参数要求,所以会抛出can't concatenate a non-NDframe object的错误。下面给你两种简单有效的解决方法:
方法一:直接用.loc赋值(最推荐)
如果已经确定要添加的索引是5,直接通过索引赋值是最直接高效的方式:
# 直接给索引5赋值 datovalue.loc[5] = 35
执行后你的Series就会新增索引5,对应值为35,原数据也会完整保留。
方法二:创建新Series后合并(兼容多场景)
如果你需要批量添加多个值,或者习惯用合并的方式操作,可以先把单个值包装成带指定索引的Series,再进行合并:
# 把要添加的值包装成带索引的新Series new_series = pd.Series([35], index=[5]) # Pandas 2.0及以上版本推荐用pd.concat替代append(append已被官方弃用) datovalue = pd.concat([datovalue, new_series]) # 若使用Pandas 2.0以下版本,也可以用append,但不推荐长期使用 # datovalue = datovalue.append(new_series)
执行完上述代码后,你的Series输出会变成:
0 736722.0 1 736722.0 2 736723.0 3 736723.0 4 736725.0 5 35.0 dtype: float64
内容的提问来源于stack exchange,提问作者MathiasRa
相关产品推荐
相关产品推荐

