Pyomo DataPortal ไม่ได้อ่านในหลายคอลัมน์แฟ้ม csv เหมาะสม

0

คำถาม

ฉันกำลังพยายามอ่านอยู่ในแฟ้ม csv กับหลายคอลัมน์โดยใช้ Pyomo DataPortal ฟังก์ชัน data.load เริ่มการใช้งานการดัชนี i แต่ฉันวิ่งเข้าหาปัญหาที่ผมไม่สามารถเลือกสำหรับคอลลัมน์ฉันต้องการใช้ select เถียงกันอยู่นะ

นี่คือรหัสฉันทำงานอยู่

from pyomo.environ import *
model = AbstractModel()
model.i = Set()

data = DataPortal()
data.load(filename='fips.csv',select='fips',set=model.i)

คน fips.csv แฟ้มมีหลายคอลัมน์กับ FIPS รหัสรายละเอียด ฉันพยายามจะเลือกคอลัมน์เรียกว่า fips.

ข้อผิดพลาดฉันกำลังจะเป็นเออออตามหรอกนะ

Model declaration 'f' not found in returned query columns
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Users/cwayner/PycharmProjects/SeniorThesis/pyomo/dataportal/DataPortal.py", line 164, in load
    self._data_manager.read()
  File "/Users/cwayner/PycharmProjects/SeniorThesis/pyomo/dataportal/plugins/csv_table.py", line 58, in read
    self._set_data(tmp[0], tmp[1:])
  File "/Users/cwayner/PycharmProjects/SeniorThesis/pyomo/dataportal/TableData.py", line 117, in _set_data
    header_index.append(headers.index(str(i)))
ValueError: 'f' is not in list

อะไรทำให้พวกเธอสับสนเกี่ยวกับเรื่องนี้กับฉันนั่นคือข้อผิดพลาดนี้เกี่ยวกัแค่คนแรกจดหมาย(f)ของคอลัมน์ที่ฉันต้องการเพื่อเลือก(fips). ฉันไม่รู้ว่าอะไรที่สามารถเป็นสาเหตุที่ก่อให้เกิดสิ่งนี้ในภาษาไพธอน.

ฉันพยายามกำลังโหลดข้อมูลในการใช้ Pandas และทั้งหมดส่วนหัวคอลัมน์ปรากฏขึ้นเพื่อเป็นการเรียกใช้อย่างถูกต้อง,แต่ฉันอยากจะคิดให้ออกทำไมมันไม่ทำงานโดยใช้ data.load คุณสมบัติ. ฉันสามารถโหลดในคอลัมน์แฟ้ม csv ได้ดี(ซึ่งมันง่ายอย่าง workaround อยู่ไหนฉันแบ่งของแฟ้ม csv ไปหลายคน-คอลัมน์ CSVs)แต่ฉันอยากจะได้ select ฟังก์ชันทำงานสำหรับหลายคอลัมน์ CSVs สำหรับรู้สึกอย่างนั้นและก็ใช้ง่ายขึ้น

csv pyomo python
2021-11-18 16:04:59
1

คำตอบที่ดีที่สุด

0

ถ้าคุณมองใกล้ชิดอยู่ที่ เอกสารคู่มือ สำหรับ select มันบอกว่าคนเถียงกันควรจะเป็นรายชื่อหรือ tuple. งั้นภายในร่างกายเพื่อนฟังก์ชันที่เถียงกันของพวก"iterated". และใช้เส้นสายเป็น iterable ดังนั้นคนแรก"f"ก็คือการปลอกเปลือกออก

ทางออก:หากคุณมีแค่หนึ่งคอลัมน์ที่แอ็กทีฟ:วางมันเข้าไปใน 1-ธาตุรายชื่อหรือ 1-ธาตุ tuple. ข้อควรจำ:คุณต้องการตามรอยจุลภาคใน 1-ธาตุ tuple หรือมันเป็นเพียงแค่รู้มาเป็นวงเล็บ. พยายามนี้:

data.load(filename='fips.csv',select=('fips',),set=model.i)

ยังอยู่ในที่เดียวกันส่วนของเอกสารนั่นคือข้อความเรื่องกำลังโหลดหลายพารามิเตอร์ที่ครั้งหนึ่งซึ่งอาจจะต้องการความช่วยเหลือเหกับคุณ

2021-11-18 17:18:05

ขอบคุณมาก! ฉันไม่รู้ว่าจะทำยังไงโดยไม่มีชุมชนนี้.
Claire Wayner

เยี่ยมเลย ที่ฉันเคยบอกเรื่องนี้กับคุณในอีกคนโพสคุณมีมันองนี้ตอบปัญหาของโปรดเพิ่งเครื่องหมาย"ต่อไปจะเป็นคำตอบจะปิดมันออกมา(ให้ฉัน meager คะแนน...lol)
AirSquid

โอเคผมอาจจะพูดเร็วเกินไป เมื่อพยายามของคุณรหัสแค่ตอนนี้ฉันวิ่งเข้าไปในแตกต่างผิดพลาด IndexError: string index out of range. คุณมีความคิดอะไรขึ้น? คอลัมน์ของข้อมูลของเฟรมฉันกำลังพยายามอ่านอยู่ในค integers ไม่ใช่ข้อความ
Claire Wayner

ฉันสงสัยว่ามันเกิดข้อผิดพลาดคือมาจากรถโหลดปฏิบัติการนี้ เช็คเส้นจำเป็นต้น พิมพ์ตั้งหลังจากที่มันถูกโหลด ถ้ามันไม่ได้ผลและคุณต้องมาติดอยู่โอกาสของนายจะลดลงมันลงจนเหลือน้อยที่สุ reproducible ตัวอย่างเช่นพร้อมกับคู่บรรทัดของแหล่งข้อมูลดังนั้นข้อผิดพลาดจะเป็นแพร่พันธุ์และโพสคนใหม่คำถาม
AirSquid

งั้นบางทีอาจจะมีปัญหากับเรื่องนี้วิธีที่ผ่านมา ฉันแค่ tinkered กับที่"เลือกตัวเลือก"สั่งและฉันไม่สามารถเอามันออกจะโหลดการตั้งค่าบุคคลหนึ่งอย่างถูกต้อง มันสามารถทำการสร้างดัชนีค้นหาพารามิเตอร์ที่อยู่ในเอกสารแต่ฉันไม่สามารถทำให้มันใช้ได้สำหรับเรียบร้อย คุณอาจจะต้องพิจารณาต่างออกข้อมูลของโครงสร้างนั่นมากกว่าที่คาดหมาย
AirSquid

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................