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

วิธีดึงคอลัมน์เฉพาะจากไฟล์ CSV มาเป็น List ใน Python ด้วย Pandas

การอ่านไฟล์ CSV และเลือกเฉพาะคอลัมน์ที่ต้องการใน Pandas ทำได้ง่ายด้วยพารามิเตอร์ usecols ในฟังก์ชัน pd.read_csv() ช่วยประหยัดหน่วยความจำและเวลาเมื่อไฟล์ใหญ่

ขั้นตอนการทำงาน

  1. นำเข้า pandas และ matplotlib.pyplot
  2. กำหนดรายการชื่อคอลัมน์ที่ต้องการ: columns = ["Name", "Marks"]
  3. อ่าน CSV ด้วย pd.read_csv("input.csv", usecols=columns)
  4. แสดงข้อมูลที่ดึงมาได้ด้วย print(df)
  5. พลอตข้อมูลด้วย plt.plot(df.Name, df.Marks)
  6. แสดงผลด้วย plt.show()

ตัวอย่างโค้ด

import pandas as pd
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

columns = ["Name", "Marks"]
df = pd.read_csv("input.csv", usecols=columns)
print("Contents in csv file:\n", df)
plt.plot(df.Name, df.Marks)
plt.show()

ข้อมูลตัวอย่างใน CSV (input.csv)

NameMarks
Arun98
Shyam75
Govind54
Javed92
Raju87

ตัวเลือก usecols อื่นๆ

  • usecols=[0, 2] - เลือกด้วย index คอลัมน์ (เริ่ม 0)
  • usecols=lambda x: x.startswith('Sales') - ใช้ฟังก์ชันกรองชื่อคอลัมน์
  • usecols=["Name", "Age", "Salary"] - เลือกหลายคอลัมน์

การแปลงเป็น List


# แปลงคอลัมน์เดียวเป็น list
names_list = df["Name"].tolist()
marks_list = df["Marks"].tolist()

# แปลงทั้ง DataFrame เป็น list of lists
data_list = df.values.tolist()

# แปลงเป็น list of dicts (records)
records = df.to_dict('records')

การประยุกต์ใช้

เหมาะสำหรับการประมวลผลข้อมูลขนาดใหญ่ (Large CSV) การทำ ETL (Extract, Transform, Load) การเตรียมข้อมูลสำหรับ Machine Learning หรือการสร้างรายงานจากฐานข้อมูล