เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

อัตโนมัติการโหลดและรวมข้อมูลจากหลาย worksheet ใน Excel

ถึงเวลาแล้วที่จะทำให้กระบวนการนำเข้าข้อมูลรายชื่อบริษัทจากทั้งสามตลาดหลักทรัพย์ในไฟล์ Excel listings.xlsx เป็นแบบอัตโนมัติด้วย for loop มาดูขั้นตอนกัน:

  1. ดึงชื่อ sheet จากออบเจ็กต์ pd.ExcelFile() โดยใช้แอตทริบิวต์ sheet_names
  2. สร้างลิสต์ว่าง
  3. เขียน for loop เพื่อวนซ้ำผ่านชื่อ sheet เหล่านั้น แล้วอ่านข้อมูลจาก sheet ที่ตรงกันในไฟล์ Excel ลงในตัวแปร จากนั้นเพิ่มคอลัมน์อ้างอิงหากต้องการ แล้ว append ข้อมูลในตัวแปรนั้นลงในลิสต์ในแต่ละรอบ
  4. เชื่อมต่อ DataFrame ทั้งหมดในลิสต์เข้าด้วยกัน

หากต้องการความช่วยเหลือ ให้ดูแบบฝึกหัดก่อนหน้าในบทนี้หรือเอกสารประกอบของ pandas ได้เลย โดย pandas ถูก import มาในชื่อ pd แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การนำเข้าและจัดการข้อมูลทางการเงินใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างออบเจ็กต์ pd.ExcelFile() โดยใช้ไฟล์ listings.xlsx แล้วกำหนดให้กับตัวแปร xls
  • ดึงชื่อ sheet จากแอตทริบิวต์ .sheet_names ของ xls แล้วกำหนดให้กับ exchanges
  • สร้างลิสต์ว่างแล้วกำหนดให้กับตัวแปร listings
  • วนซ้ำผ่าน exchanges ด้วย for loop โดยใช้ exchange เป็นตัวแปร iterator ในแต่ละรอบ:
    • ใช้ pd.read_excel() โดยกำหนด xls เป็นแหล่งข้อมูล, exchange เป็นอาร์กิวเมนต์ sheet_name และ 'n/a' เป็น na_values เพื่อจัดการกับค่าที่หายไป แล้วกำหนดผลลัพธ์ให้กับ listing
    • สร้างคอลัมน์ใหม่ใน listing ชื่อ 'Exchange' โดยกำหนดค่าเป็น exchange (ตัวแปร iterator)
    • Append DataFrame listing ที่ได้ลงใน listings
  • ใช้ pd.concat() เพื่อเชื่อมต่อข้อมูลทั้งหมดใน listings แล้วกำหนดให้กับ listing_data
  • ตรวจสอบเนื้อหาของ listing_data โดยใช้ .info()

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create the pd.ExcelFile() object
xls = ____

# Extract the sheet names from xls
exchanges = ____.____

# Create an empty list: listings


# Import the data
for exchange in exchanges:
    listing = pd.____(____, sheet_name=____, na_values='n/a')
    listing['Exchange'] = ____
    listings.____(____)

# Concatenate the listings: listing_data
listing_data = pd.____(____)

# Inspect the results
listing_data.info()
แก้ไขและรันโค้ด