【问题标题】:How do i convert list into python dataframe如何将列表转换为 python 数据框
【发布时间】:2019-03-27 15:10:10
【问题描述】:

我使用 for 循环从图像中提取文本。所以我在将列表转换为 python pandas 数据框时遇到错误。

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] = [范围内n的信息(14))

【问题讨论】:

  • 分享错误会很有用(请更新问题)
  • df = pd.DataFrame({'col1':info,'col2':info})
  • 不工作@il

标签: python pandas


【解决方案1】:

请查看 .DataFrame 的文档 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html

创建数据框所在的行

df = pd.DataFrame([info], colnames=['col1','col2']

末尾缺少括号,使用列名而不是列,列表周围有不必要的方括号,并且在您只需要一个的地方创建了两列。

请注明具体错误

【讨论】:

    【解决方案2】:

    我认为这里有两个问题。

    首先,尽管info 已经是一个列表,但您正在传递给DataFrame [info]。您可以按原样传递此列表。

    现在您将项目列表作为参数传递,您正在尝试将列表转换为具有两列的 DataFrame:colnames=['col1','col2']。并且关键字是columns 而不是colnames

    我认为这就是问题所在。您的列表不是包含两个项目的列表(如[[a, b], [c, d]])。只需使用:

    df = pd.DataFrame(info, columns=['col1'])
    

    最好的

    【讨论】:

    • df = pd.DataFrame(info) 在您没有预定义列时使用。所以这个我认为行不通。
    • 是列表不是两个iteam的列表。
    猜你喜欢
    • 2016-02-05
    • 2021-04-12
    • 2021-04-19
    • 1970-01-01
    • 2018-10-30
    • 2019-05-26
    • 2021-10-16
    • 2020-05-07
    • 1970-01-01
    相关资源
    最近更新 更多