อัตโนมัติการโหลดและรวมข้อมูลจากหลาย worksheet ใน Excel
ถึงเวลาแล้วที่จะทำให้กระบวนการนำเข้าข้อมูลรายชื่อบริษัทจากทั้งสามตลาดหลักทรัพย์ในไฟล์ Excel listings.xlsx เป็นแบบอัตโนมัติด้วย for loop มาดูขั้นตอนกัน:
- ดึงชื่อ sheet จากออบเจ็กต์
pd.ExcelFile()โดยใช้แอตทริบิวต์sheet_names - สร้างลิสต์ว่าง
- เขียน for loop เพื่อวนซ้ำผ่านชื่อ sheet เหล่านั้น แล้วอ่านข้อมูลจาก sheet ที่ตรงกันในไฟล์ Excel ลงในตัวแปร จากนั้นเพิ่มคอลัมน์อ้างอิงหากต้องการ แล้ว append ข้อมูลในตัวแปรนั้นลงในลิสต์ในแต่ละรอบ
- เชื่อมต่อ 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()