A collection of 190 posts
เราเกิดคำถามว่า เราจะทำยังไงให้เราสามารถ Apply Function บน Pandas DataFrame ได้เร็วที่สุด วันนี้เราลองมาค่อย ๆ ลองดูทีละวิธี และ ลองมาเปรียบเทียบกันดีกว่าว่า วิธีไหนที่จะเร็วที่สุดกันแน่...
อีกพฤติกรรมนึงที่หลาย ๆ คนอาจจะคิดไม่ถึงบนภาษา Python โดยเฉพาะเมื่อเราเขียนโปรแกรมแบบ OOP บน Python เป็นเรื่องที่เมื่อก่อนเราเองก็ไม่รู้มาก่อนเลย พอมารู้ก็คือ ห่ะ เหรอ แบบนี้ก็ได้เหรอฟร๊ะ นั่นคือ Class Variable และ Instance Variable...
Walrus Operator อ่านครั้งแรกคือ อิหยังว้าาาาา แต่พอมาดูในรายละเอียดมันทำให้การเขียน Script ของเราสั้นลงเยอะมาก วันนี้เราลองมาดูกันว่า มันคืออะไร และใช้ยังไง...
ก่อนหน้านี้ เราใช้ CSV เป็น Format ในการเก็บข้อมูลกันมาบ่อย ๆ แล้ว แต่ปัญหามันจะเกิดเมื่อเราทำงานกับข้อมูลขนาดใหญ่มาก ๆ CSV จะเริ่มมีอาการหน่วง และ ใหญ่มาก ๆ วันนี้เราจะมาแนะนำ Parquet อีก Format ที่จะเข้ามาแก้ปัญหานี้กัน...
หนึ่งในเรื่องลึกลับของ Python ที่หลาย ๆ อาจจะยังไม่รู้ เมื่อเรา Clone Object แล้ว ทำไม Mutate Object แล้วมันเปลี่ยนไปหมดเลย วันนี้เรามาหาคำตอบไปพร้อม ๆ กันว่า เราจะ Clone Object ยังไงให้รอดกัน...
การเขียน OOP บน Python เราน่าจะเจอปัญหาที่เกิดมาจากความยืดหยุ่น ที่มากเกินไปของ Python ทำให้สิ่งที่ควรจะเรียกไม่ได้ กลับเรียกได้ และอาจทำให้เกิดปัญหาหลาย ๆ อย่างตามมา เราก็ต้องมาไล่เช็ค มันก็จะเสียเวลามาก วันนี้เรามาแนะนำ 3 Decorator ที่จะทำให้การเขียนโปรแกรมแบบ OOP บน Python ทำได้ง่ายขึ้นกัน...
ตอนก่อน เรามาเล่าเรื่อง Decorator ใน Python กันไปแล้ว มาในตอนนี้เราอยากจะมาเล่าถึง 3 Decorator ที่เราใช้บ่อย ๆ ส่วนใหญ่จะเป็น Snippet เขียนเองทั้งนั้น วันนี้มาดูกันว่าจะมี Decorator ตัวไหนบ้าง...
เมื่อหลายวันก่อนมีน้องถามเรื่องของ Functools ใน Python เลยทำให้นึกถึงความเป็น First Class Citizen ของ Function ใน Python ว่ามันเป็นชนชั้นที่ความสามารถเยอะมาก ๆ เราสามารถ Pass เป็น Argument เข้าไปซ้อน ๆ Function อีกทีได้ แต่ Feature ตัวนึงที่เจ๋งมาก ๆ และหลาย ๆ คนมองข้ามไปคือ Decorator...
หลาย ๆ ครั้งเวลาเราเขียน Python โดยเราอาจจะเจอเคสที่เราจะต้องเขียน Function และมันจะต้องคืนค่ากลับมาเป็น Iterator ต่าง ๆ เมื่อเราทำงานกับข้อมูลใหญ่ ๆ เป็นไปได้ยากที่เราจะรันเอาผลทั้งหมดมาใช้งานต่อได้ การใช้ Generator เป็นวิธีที่ทำให้เราสามารถแก้ปัญหานี้ได้...