- บทความนี้ผู้เขียนพูดถึง API ที่ชอบที่สุดของตนเอง นั่นคือ zipfile บนเว็บไซต์ของธนาคารกลางยุโรป ซึ่ง zipfile นี้ให้ข้อมูลย้อนหลังว่าเงินยูโรอยู่ในตำแหน่งใดเมื่อเทียบกับสกุลเงินอื่น
- ผู้เขียนแสดงวิธีใช้เครื่องมือต่าง ๆ เช่น curl, gunzip, sqlite3 และ pandas เพื่อดาวน์โหลด แตกไฟล์บีบอัด และคิวรีข้อมูลจาก zipfile
- ข้อมูลที่ได้จาก zipfile อยู่ในรูปแบบ "wide" โดยมีคอลัมน์วันที่และคอลัมน์เพิ่มเติมสำหรับแต่ละสกุลเงิน ซึ่งไม่เหมาะนักสำหรับการกรองและการรวมผล
- ผู้เขียนใช้ pandas เพื่อแปลงข้อมูลจากรูปแบบ "wide" เป็นรูปแบบ "long" หรือกระบวนการที่เรียกว่า "melting"
- ผู้เขียนยังชี้ให้เห็นว่าข้อมูลมีปัญหาอยู่: มี trailing comma ที่ท้ายแต่ละบรรทัดซึ่งรบกวนกระบวนการ melting และแก้ไขได้ด้วยการเพิ่ม
.iloc[:, :-1] เข้าไปใน method chain ของ pandas
- ผู้เขียนยอมรับว่าการจัดการข้อมูลนี้ต้องมีงานด้าน "data preparation" แต่ก็มองว่าข้อมูลอัตราแลกเปลี่ยนของ ECB จัดการได้ค่อนข้างง่ายเมื่อเทียบกับการเผยแพร่ข้อมูลเปิดอื่น ๆ
- จากนั้นผู้เขียนแสดงวิธีอัปโหลดข้อมูลที่จัดระเบียบแล้วไปยังตาราง csvbase และวิธีใช้ gnuplot เพื่อวาดกราฟจากข้อมูล
- ผู้เขียนยังแนะนำเครื่องมือชื่อ DuckDB ซึ่งคล้ายกับ sqlite แต่เป็นแบบ columnar และแสดงวิธีใช้มันโหลด csv จาก HTTP เข้าไปเป็นไฟล์ตารางได้โดยตรง
- ผู้เขียนชี้ว่าข้อมูลเปิดสามารถทำหน้าที่เป็น API แบบเปิดได้ และชื่นชมความเรียบง่ายของ zipfile ของ ECB ในฐานะรูปแบบการแลกเปลี่ยนข้อมูล
- ผู้เขียนยังให้ประวัติโดยย่อของเงินยูโร และอธิบายว่าทำไมในช่วงเปิดตัวครั้งแรกในปี 2000 มันจึงอ่อนค่าเมื่อเทียบกับดอลลาร์
ยังไม่มีความคิดเห็น