使用pd.concat合并DataFrame列表时报list类型不可拼接错误如何解决
报错原因
pd.concat()的第一个入参要求是由Series或DataFrame组成的可迭代对象,你已经将10个待拼接的DataFrame存入列表s1,调用pd.concat([s1])时相当于传入了嵌套列表,内层元素为列表类型而非可被拼接的DataFrame,不符合参数校验规则,因此抛出类型错误。
解决方案
直接传入已整理好的DataFrame列表s1即可完成垂直拼接,默认拼接方向为行方向(axis=0),刚好匹配你需要的3列1000行结构,拼接完成后调用to_numpy()方法即可转换为数组。
完整可运行代码如下:
# 原有DataFrame列表定义无需修改 s1 = [d0,d1,d2,d3,d4,d5,d6,d7,d8,d9] # 去掉外层多余的方括号,直接传入s1 # 可选添加ignore_index=True重置行索引,避免原有10个DataFrame的行索引重复 s2 = pd.concat(s1, ignore_index=True) # 转换为数组 result_arr = s2.to_numpy()
你可以执行print(s2.shape)验证拼接结果的维度,输出应为(1000, 3)即符合要求。
内容的提问来源于stack exchange,提问作者vp_050
相关产品推荐
相关产品推荐

