นุ่นอ่านในตารางโดยไม่มีส่วนหัว


239

ฉันจะอ่านในไฟล์. csv (โดยไม่มีส่วนหัว) ได้อย่างไรและเมื่อฉันต้องการเพียงชุดย่อยของคอลัมน์ (พูดที่ 4 และ 7 จากทั้งหมด 20 คอลัมน์) โดยใช้แพนด้า ฉันดูเหมือนจะทำไม่ได้usecols

คำตอบ:


351

ในการอ่าน csv ในที่ไม่มีส่วนหัวและเฉพาะคอลัมน์บางคอลัมน์คุณต้องผ่าน params header=Noneและusecols=[3,6]คอลัมน์ที่ 4 และ 7:

df = pd.read_csv(file_path, header=None, usecols=[3,6])

ดูเอกสาร


67

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

สารละลาย

การใช้งานusecolsและnamesพารามิเตอร์

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])

อ่านเพิ่มเติม

หรือใช้header=Noneเพื่อบอกคนอย่างชัดเจนว่าcsvไม่มีส่วนหัว (อย่างไรก็ตามทั้งสองบรรทัดเหมือนกัน )

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)

เพื่อให้คุณสามารถดึงข้อมูลของคุณโดย

# with `names` parameter
df['colA']
df['colB'] 

แทน

# without `names` parameter
df[0]
df[1]

อธิบาย

จากread_csvเมื่อnamesถูกส่งผ่านอย่างชัดเจนจากนั้นheaderจะทำงานเหมือนNoneแทนที่จะเป็น0ดังนั้นจึงสามารถข้ามheader=Noneเมื่อnamesมีอยู่ได้


9

ตรวจสอบให้แน่ใจว่าคุณระบุรหัสผ่านheader=Noneและเพิ่มusecols=[3,6]สำหรับคอลัมน์ที่ 4 และ 7

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.