使用多列表创建指定列的pandas DataFrame时报错如何解决
问题原因
你遇到的报错是两个问题共同导致的:
- 数据结构不匹配:原代码中
[[zeros], [values]]的实际结构是[[[0,0,0]], [[10,20,30]]],属于2行1列的嵌套结构,每个元素是长度为3的列表,和预期的2行3列结构不符,所以会触发「预期3列但数据只有1列」的报错。 - 变量名拼写错误:你定义的列名变量是
col,但传参时写的是不存在的变量unique。
修正方案
只需要去掉数据内层多余的括号,同时修正columns参数的变量名即可,修改后代码如下:
import pandas as pd zeros = [0]*3 values = [10, 20, 30] # 此处为numpy数组也可以直接传入,结构一致即可 index = ['D', 'E'] col = ['A', 'B', 'C'] df = pd.DataFrame([zeros, values], index=index, columns=col)
结果验证
运行后得到的DataFrame完全符合预期:
| 行索引 | A | B | C |
|---|---|---|---|
| D | 0 | 0 | 0 |
| E | 10 | 20 | 30 |
内容的提问来源于stack exchange,提问作者Ksenia
相关产品推荐
相关产品推荐

