Python 从“U记录”读取的数据帧;AssertionError:1列已传递,传递的数据有22列;
我有一个列表,其中Python 从“U记录”读取的数据帧;AssertionError:1列已传递,传递的数据有22列;,python,list,pandas,dataframe,Python,List,Pandas,Dataframe,我有一个列表,其中a的长度为806。我想导入一个数据框,其中列表中的第一项是列名。我的代码是: import pandas as pd b = pd.DataFrame.from_records(a[1:],columns=[a[0]]) 这给了我一个AssertionError错误:传递了1列,传递的数据有22列,而显然我只有一列 我尝试过代码的一种表示,它很有效。所以我不确定这里发生了什么。以下是代码的表示: import pandas as pd arr= ['title', 'a','
a
的长度为806
。我想导入一个数据框,其中列表中的第一项是列名。我的代码是:
import pandas as pd
b = pd.DataFrame.from_records(a[1:],columns=[a[0]])
这给了我一个AssertionError错误:传递了1列,传递的数据有22列
,而显然我只有一列
我尝试过代码的一种表示,它很有效。所以我不确定这里发生了什么。以下是代码的表示:
import pandas as pd
arr= ['title', 'a','b','','','']
arr= filter(None, arr)
b = pd.DataFrame.from_records(arr[1:],columns=[arr[0]] )
我的名单一定有问题吧?我打印了一份,看起来很好,就像一份普通的清单。我粘贴了a
的打印输出,并将其作为变量列表
,它给出了相同的错误断言错误:传递了1列,传递的数据有22列
。我的名单好像有问题。我还可以做什么来调试
编辑(基于DSM建议):
这给出了断言错误:传递了1列,传递的数据有8列而不是使用来自_记录的您想要使用默认的数据帧构造函数
from_records
需要一个可编辑的列表,因此,例如,字符串'0006660.ks'
被读入为('0'、'0'、…、's')
,这就是为什么数据中出现8列错误的原因
b = pd.DataFrame(a[1:], columns=[a[0]])
与其告诉我们问题,不如展示给我们:编辑你的问题,给出一个我们可以复制和粘贴的示例。首先,找到最小的失败案例。对于
a[1:400]
,它是否仍然失败?对于a[1:100]
<代码>a[1:5]?请注意,如果列表中有数据,您无法向我们显示,那么请将字符串替换为“A”,并将浮点值替换为1.0,等等,直到您给出一个可以发布的示例。这是一个很好的建议。我已经尝试了您的建议,并将重新发布代码。首先,不要使用list
作为变量名,假设您的数组名为arr
,请尝试pd.DataFrame([arr[1:],columns=[arr[0]])
@mtadd。谢谢你的建议。所做的编辑。
b = pd.DataFrame(a[1:], columns=[a[0]])