python csv - list indices must be integers or slices, not str

กระทู้คำถาม
ปัญหานี้แก้ยังไงเหรอครับ ถ้าอ่านจากไฟล์เดียวได้ปกติ แต่พอใช้วิธีอ่านหลายๆ ไฟล์ มันขึ้น error ตามรูปครับ
https://www.img.in.th/image/4ydS5T

อ่านจากไฟล์เดียว
https://www.img.in.th/image/4yjV2q
https://www.img.in.th/image/4yj55g
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
คุณใช้ list comprehension คร่อมการอ่าน csv ทำให้ dfs คุณเป็น list ของ DataFrame ไม่ใช่ DataFrame อันเดียว ต้องรวม DataFrame ด้วยคำสั่ง pandas.concat() ก่อนครับตามนี้

combined_df = pandas.concat(dfs, ignore_index=True)

นอกจากนี้เราไม่ควรเขียน for loop ในการประมวลผล dataframe หรือ series ทีละตำแหน่งเอง เพราะคำสั่งของ pandas นั้นจะทำงานกับทั้ง series/df อยู่แล้ว เช่นถ้าจะเปลี่ยน string เวลาให้เป็น datetime ก็ใช้คำสั่ง pandas.to_datetime() แล้วใส่ทั้งคอลัมน์ลงไปเป็นอาร์กิวเมนต์เลย ไม่ต้องวนลูปใส่ที่ละ cell
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่