我用于从图片中提取文本的循环。所以在将列表转换为python pandas dataframe时遇到错误。
info = []
for item in dirs:
if os.path.isfile(path+item):
for a in x:
img = Image.open(path+item)
crop = img.crop(a)
text = pytesseract.image_to_string(crop)
info.append(text)
df = pd.DataFrame([info], colnames=['col1','col2'])
df
预期结果:将数据按行存储在数据框中。
是,列表不是两个项目的列表。我有14个预定义的列。 这是另一个代码 对于我在范围(信息)中: df.loc [i] = [范围(14)中n的信息)
答案 0 :(得分:1)
请检查.DataFrame的文档 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html
创建数据框的行
df = pd.DataFrame([info],colnames = ['col1','col2']
最后缺少括号,使用colnames而不是columns,列表中有不必要的方括号,并且正在创建两列,而您只需要一列。
请提及确切错误
答案 1 :(得分:0)
我认为这里有两个问题。
首先,尽管[info]
已经是一个列表,但是您正在传递给DataFrame info
。您可以按原样传递此列表。
现在,您将一个项目列表作为参数传递,您正试图将该列表转换为具有两列的DataFrame:colnames=['col1','col2']
。关键字是columns
而不是colnames
。
我认为这就是问题所在。您列出的不是两个项目的列表(如[[a, b], [c, d]]
)。只需使用:
df = pd.DataFrame(info, columns=['col1'])
最佳