كيف يمكنني قراءة بيانات csv الخاصة بي بشكل صحيح؟

كانت بياناتي كما يلي:

{'yMax': u'156', 'xMax': u'4802', 'xMin': u'4770','yMin': u'141', 'id': '1', 'name': ''}
{'yMax': u'157', 'xMax': u'4895', 'xMin': u'4810','yMin': u'141', 'id': '2', 'name': ''}

في ملف .txt ، اضطررت إلى تغييره حسب متطلبات ملف .csv ، يبدو الآن كما يلي:

image     id    name    xMin    xMax    yMin    yMax
1-0.png   1             4770    4802    141     156
1-0.png   2             4810    4895    141     157

اعتدت قراءة ملف .txt الخاص بي باستخدام:

import ast
file = open("1-0.txt", 'r')
    labels1 = []
    for line in file.readlines():
        dicObj = ast.literal_eval(line.strip('\n'))
        labels1.append(dicObj)

في الأساس كقائمة من القواميس بعد تحويل السلسلة على شكل {} في ملف txt إلى dics. كيف يمكنني الآن قراءة البيانات من ملف csv الجديد الذي وصفته بشكله أعلاه؟

0
استخدام الباندا سيكون من السهل إلى حد ما في الباندا
وأضاف المؤلف Arpit Solanki, مصدر

2 إجابة

Use csv.DictReader

على مثال: </قوي>

import csv
labels1 = []
with open(file_path, 'r') as f:
    reader = csv.DictReader(f, delimiter='\t')
    for line in reader:
        labels1.append(line)

MoreInfo

0
وأضاف
يجب أن يكون في نفس النمط الذي ذكرته. يجب أن تطبع كل dict.
وأضاف المؤلف Rakesh, مصدر
هذا ليس كيف تبدو المقتطف الخاص بي. أنا dnt استخدام وحدة ast.
وأضاف المؤلف Rakesh, مصدر
أريد أن تكون بياناتي النهائية بتنسيق مماثل للشفرة التي شاركتها في كيفية قراءة .txt وقائمة القواميس ، يرجى الرجوع إلى label1 في سؤالي وهي قائمة القواميس (json) .
وأضاف المؤلف user9686018, مصدر

يمكنك استخدام الباندا لتحميل .csv ك DataFrame. هذه هي بنية datastructure موصى بها للغاية بسبب تنوعها.

import pandas as pd
df = pd.read_csv(filename)
0
وأضاف
أريد أن تكون بياناتي النهائية بتنسيق مماثل للرمز الذي شاركته بشأن كيفية قراءة .txt وقائمة القواميس.
وأضاف المؤلف user9686018, مصدر
إنه أمر غريب أعرف أنه كان يعمل كل شيء ثم تغير بعض التعديلات والمتطلبات فجأة وأنا جديد على بيثون لذا لا خبرة سابقة مع الباندا ولكن بالتأكيد شيء سوف أقوم بالتدقيق في وقت قريب جدا ، شكرا للوقت الذي ' لقد اتخذت للإجابة والتعليق.
وأضاف المؤلف user9686018, مصدر
يمكن البانداAshishAcharya معرفة محدد في حد ذاته.
وأضاف المؤلف Arpit Solanki, مصدر
يمكنك استخدام محددات أخرى عند استخدام هذه الوظيفة كما هو موضح في الباندا. pydata.org/pandas-docs/stable/generated/&hellip، .
وأضاف المؤلف JahKnows, مصدر
حتى نتمكن من فهم ما تحاول تحقيقه بشكل أفضل. أنت ذاهب من ملف txt مع البنية الصحيحة ، إلى .csv ، فأنت تريد تحميل ملف csv بنفس البنية الموجودة في الملف txt. لماذا ا؟ لماذا لا تقرأه مباشرة من ملف txt. أخبرنا ما هي بنية البيانات التي يمكنك الوصول إليها (الملفات) وما هي بنية البيانات التي تحتاج إليها في شفرتك. لا يجب أن تحتاج إلى خطوات وسيطة مثل إنشاء ملف csv للوصول إلى بنية بيانات يمكنك الوصول إليها بالفعل.
وأضاف المؤلف JahKnows, مصدر
@ user9686018 ، لا تقلق ، فقط دعنا نعرف المزيد من التفاصيل حول ما تحاول تحقيقه ، ويمكننا أن نعطيك بعض المؤشرات نحو الأدوات التي قد تجعل حياتك أسهل بكثير.
وأضاف المؤلف JahKnows, مصدر
لا يبدو ملف OP منفصلاً بفواصل.
وأضاف المؤلف Ashish Acharya, مصدر
أعتقد أنك لا تزال بحاجة إلى القيام بذلك على النحو التالي: df = pd.read_csv (filename، delim_whitespace = True)
وأضاف المؤلف Ashish Acharya, مصدر