从文本文件到熊猫数据框

时间:2020-02-19 07:40:02

标签: python pandas dataframe arraylist

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

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

我需要将其转换为pandas DataFrame,就像宽列存储一样,仅一个列表=一行。 任何帮助都将是惊人的!我正在使用Jupyter Notebook-Python 3。

2 个答案:

答案 0 :(得分: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)

添加了用于字符串操作的其他代码,以正确格式化字符串。

答案 1 :(得分:0)

import json
with open('txt.txt') as f:
    lst = json.load(f)

df = pd.DataFrame(lst)

应该给你想要的东西。