基于列表创建pandas DataFrame报TypeError的解决方法
问题根因
pd.DataFrame的columns参数要求传入由列名组成的可迭代集合(如列表、元组),用于匹配传入数据的每一列并命名。你当前传入的bench是单个字符串值'bfs_ny',不符合参数要求,因此触发类型错误。
从打印的变量结果看,errors是一维数值列表,对应单列数据,bench是这一列的名称,只需要调整参数传入格式即可修复。
修复方案
将单个列名包裹为列表后传给columns参数即可,修改后的代码:
print(errors) print(bench) df_tmp = pd.DataFrame(errors, columns=[bench])
运行后会得到列名为bfs_ny的单列DataFrame,行数据与errors列表的元素一一对应。
补充:如果你预期
bench本身应该是存储多个列名的列表,那需要先排查bench变量的上游赋值逻辑,确认为什么最终只得到了单个字符串值,再做对应调整。
内容的提问来源于stack exchange,提问作者mahmood
相关产品推荐
相关产品推荐

