【问题标题】:From Text file to a pandas dataframe从文本文件到熊猫数据框
【发布时间】:2020-06-03 07:40:45
【问题描述】:

我有一个包含列表列表的文件,它是一个文本文件,看起来像这样:

    [[ שומר
 ,קולורבי
 ,קיווי
 ,"תפו""ע פינק ליידי"
 ,גזר
 ,עגבניה
 ,Unknown
 ] ,
[ מארז נייצ'ר ואלי שיבולת שועל עם שבבי שוקולד
 ,פיטנס חטיפי פריכיות דקות קינמון 60 גרם
 ,פריכיות משולשות פלפל
 ,מארז נייצ'ר ואלי שיבולת שועל עם שבבי שוקולד
 ,Unknown
 ,בננה
 ,"תפו""ע פינק ליידי"
 ,"תפו""ע גרנד"
 ,מארז 5 חטיפי פרי דגנים תמר תפוח ללא סוכר
 ,Unknown
 ] ,
[ "תפו""א לבן ארוז דוד משה"
 ,כרוב לבן
 ,קישוא
 ,גזר
 ,בטטה
 ] ,
[ Unknown..........

我需要将它转换为 pandas DataFrame,就像宽列存储一样,只有一个列表 = 一行。 任何帮助都会很棒!我正在使用 Jupyter Notebook - Python 3。

【问题讨论】:

  • 你想要的输出是什么样的?
  • @Yoav Barzilai 将列表列成行:df = pd.DataFrame(list)
  • @ShubhamSharma 我需要它是一个数据框,每一行都是一个列表,每个值都是一个数字。

标签: python pandas dataframe arraylist


【解决方案1】:

阅读文件文本并尝试以下代码 -

import json
import pandas as pd

data = open('data.txt', 'r', encoding = 'windows-1255', errors='ignore').read().replace("\r","").replace("\n","")


remove_doulequotes = data.replace('""', '').replace('"', '')
list_of_str = list(map(lambda x: '"{x}"'.format(x=x), remove_doulequotes.split(",")))
final_data = ", ".join(list_of_str).replace('"[[', '[["').replace(']"','"]').replace(']]"', '"]]').replace('"[', '["').replace(']"]', '"]]')

data_in_list = json.loads(final_data)

df = pd.DataFrame(data_in_list)

或者你也可以使用ast.literal_eval 函数 -

import ast

data = open('data.txt', 'r', encoding = 'windows-1255', errors='ignore').read().replace("\r","").replace("\n","")

remove_doulequotes = data.replace('""', '').replace('"', '')
list_of_str = list(map(lambda x: '"{x}"'.format(x=x), remove_doulequotes.split(",")))
final_data = ", ".join(list_of_str).replace('"[[', '[["').replace(']"','"]').replace(']]"', '"]]').replace('"[', '["').replace(']"]', '"]]')

data_in_list = ast.literal_eval(final_data)

df = pd.DataFrame(data_in_list)

为字符串操作添加了额外的代码以正确格式化字符串。

【讨论】:

  • 您好,感谢您的回复,我的数据在文本文件中。
  • 我提到读取文件然后将其存储在名为变量的数据中,然后您就可以重用代码。 stackoverflow.com/questions/8369219/…
  • @YoavBarzilai 编辑了答案。您可以通过多种方式读取文件。
  • @YoavBarzilai 使用 ast 是最好的方法。在此处查看更多详细信息 - docs.python.org/3/library/ast.html
  • @YoavBarzilai 改进的答案,非常粗略的代码添加到格式字符串。
【解决方案2】:
import json
with open('txt.txt') as f:
    lst = json.load(f)

df = pd.DataFrame(lst)

应该给你你想要的。

【讨论】:

    猜你喜欢
    • 2020-07-16
    • 2017-03-21
    • 1970-01-01
    • 2019-06-24
    • 2015-11-14
    • 2015-06-14
    • 2014-04-12
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多