Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การทำงานกับไฟล์ csv ในการเขียนโปรแกรม Python


ไฟล์ CSV หรือไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาคเป็นหนึ่งในไฟล์แฟลตที่ใช้กันอย่างแพร่หลายมากที่สุดในการจัดเก็บและแชร์ข้อมูลข้ามแพลตฟอร์ม คอลัมน์ต่างๆ จะถูกคั่นด้วยเครื่องหมายจุลภาค และมีแถวส่วนหัวที่ไม่บังคับ ซึ่งจะระบุชื่อของแต่ละคอลัมน์ Python สามารถอ่านไฟล์ CSV ได้โดยใช้หลายโมดูล ในบทความนี้ เราจะมาดูกันว่าไลบรารี CSV ใน python สามารถใช้อ่านและเขียนไฟล์ CSV ได้อย่างไร เรายังสามารถดูไลบรารีแพนด้า onl เพื่ออ่านไฟล์ CSV ได้

การอ่านไฟล์ CSV โดยใช้โมดูล csv

เราสามารถรับไฟล์ CSV ได้จาก (https://www.guru99.com/python-csv.html)

ตัวอย่าง

นำเข้า csvwith open('C:\\iris.csv','rt') เป็นไฟล์:csv_rows =csv.reader(ไฟล์) สำหรับแถวใน csv_rows:print(row)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

['sepal.length', 'sepal.width', 'petal.length', 'petal.width', 'variety']['5.1', ​​'3.5', '1.4', '.2', 'Setosa']['4.9', '3', '1.4', '.2', 'Setosa']['4.7', '3.2', '1.3', '.2', 'Setosa'][' 4.6', '3.1', '1.5', '.2', 'Setosa']['5', '3.6', '1.4', '.2', 'Setosa']['5.4', '3.9' , '1.7', '.4', 'Setosa']['4.6', '3.4', '1.4', '.3', 'Setosa']…………………

การอ่านไฟล์ CSV โดยใช้ Pandas

ห้องสมุด Pandas สามารถใช้อ่านไฟล์ csv ได้เช่นกัน มีวิธีการอ่าน csv ซึ่งสามารถนำไปใช้โดยตรงโดยข้ามเส้นทางและชื่อไฟล์ เมื่ออ่านไฟล์แล้ว ไฟล์จะกลายเป็นชุดข้อมูล จากนั้นเราสามารถพิมพ์ส่วนต่างๆ ของชุดข้อมูลได้ตามต้องการ

ตัวอย่าง

นำเข้าแพนด้าเป็น pddatainput =pd.read_csv('C:\\iris.csv')print("ค่าชุดข้อมูลที่กำหนด :\n", datainput)#size ของ datasetprint("\nขนาดของชุดข้อมูลคือ:\n",datainput.shape)#printing สองสามแถวจาก datasetprint("\n กำลังพิมพ์สองสามแถวจากชุดข้อมูล :\n",datainput[0:6])

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ −

ค่าชุดข้อมูลที่กำหนด :sepal.length sepal.width petal.length petal.width variety0 5.1 3.5 1.4 0.2 Setosa1 4.9 3.0 1.4 0.2 Setosa2 4.7 3.2 1.3 0.2 Setosa3 4.6 3.1 1.5 0.2 Setosa4 5.0 3.6 1.4 0.2 Setosa.. ... ... ... ... ...145 6.7 3.0 5.2 2.3 Virginica146 6.3 2.5 5.0 1.9 Virginica147 6.5 3.0 5.2 2.0 Virginica148 6.2 3.4 5.4 2.3 Virginica149 5.9 3.0 5.1 1.8 Virginica[150 แถว x 5 คอลัมน์]ขนาดของชุดข้อมูล คือ :(150, 5) กำลังพิมพ์สองสามแถวจากชุดข้อมูล :sepal.leng th sepal.width petal.length petal.width variety0 5.1 3.5 1.4 0.2 Setosa1 4.9 3.0 1.4 0.2 Setosa2 4.7 3.2 1.3 0.2 Setosa3 4.6 3.1 1.5 0.2 Setosa4 5.0 3.6 1.4 0.2 Setosa5 5.4 3.9 1.7 0.4 Setosa

การเขียนไฟล์ CSV โดยใช้โมดูล csv

ในการสร้างไฟล์ csv เราใช้รายการ Python เราประกาศชุดข้อมูลที่มีแต่ละแถวเป็นรายการ และแถวทั้งหมดเป็นรายการย่อยในรายชื่อนักร้องรายใหญ่ เรายังสร้างชุดข้อมูลอีกชุดหนึ่งซึ่งแสดงเฉพาะแถวส่วนหัว จากนั้นเราใช้วิธีการต่างๆ เช่น writerow() และ csv.writer เพื่อเขียนไฟล์ลงในระบบโลคัลในที่สุด

ตัวอย่าง

นำเข้า csvdata =["เดือน", "1958", "1959", "1960"]x =[["JAN", 340, 360, 417],["FEB", 318, 342, 391], ["MAR", 362, 406, 419],["APR", 348, 396, 461],["เมย์", 363, 420, 472],["JUN", 435, 472, 535],[" กรกฎาคม", 491, 548, 622],["ส.ค.", 505, 559, 606],["SEP", 404, 463, 508],["ต.ค.", 359, 407, 461],["NOV" , 310, 362, 390], ["DEC", 337, 405, 432],]y ="C:\\years.csv" พร้อม open(y, 'w') ขณะทำงาน:z =csv.writer( งาน) z.writerow(data) z.writerows(x)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

<ก่อน>เดือน,1958,1959,1960JAN,340,360,417FEB,318,342,391MAR,362,406,419APR,348,396,461MAY,363,420,472JUN,435,472,535JUL,491,548,622AUG,505,324,435,472,535JUL,491,548,622AUG,505,324,559ก่อน,OCI

การเขียนไฟล์ CSV โดยใช้แพนด้า

Uisng pandas คือเราสร้าง data frame ซึ่งประเทศคือแถวและส่วนหัวของแถว จากนั้นเราใช้เมธอด to_csv ซึ่งส่งข้อความชื่อไฟล์และพาธเป็นพารามิเตอร์ และส่งข้อมูลไปยังไฟล์ csv

ตัวอย่าง

จากแพนด้านำเข้า DataFrameC ={'เดือน':['JAN','FEB', 'MAR'], '1958':['345', '435', '545'], '1959':[ '377', '135', '985'], '1960':['498', '354', '765'],}df =DataFrame(C, คอลัมน์=["เดือน", "1958", " 1959", "1960"])export_csv =df.to_csv (r'C:\\years_p.csv', index =None, header=True) # ที่นี่คุณต้องเขียนพาธ โดยที่ไฟล์ผลลัพธ์จะถูกเก็บไว้print (df) 

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

 เดือน 1958 1959 19600 ม.ค. 345 377 4981 ก.พ. 435 135 3542 มี.ค. 545 985 765