เมื่อ youre จะทำงานกับชุดเวลาดังกล่าวใน Python, แพนด้าที่ขาดไม่ได้ และข่าวดี: มันมาพร้อมกับการดาวน์โหลดข้อมูลที่ผ่านมาสำหรับ Yahoo: pandas. io. data. DataReader การปรับปรุงสำหรับแพนด้า 0.19: โมดูล pandas. io. data ถูกลบออกจาก pandasgt0.19 เป็นต้นไป แต่คุณควรใช้แพคเกจแพนด้าดาต้าการ์ดที่แยกต่างหาก ติดตั้งด้วย: จากนั้นคุณสามารถทำเช่นนี้ใน Python: #: 3159 python debugger User: n / a Comments for #: 31527 ฉันพยายามที่จะนำเข้าทำงานได้ดี แต่เมื่อฉันโทร 39goog39 บรรทัดฉันได้รับข้อผิดพลาด: quotIOError: หลังจาก 3 พยายาม Yahoo ไม่ได้ กลับ 200 สำหรับ url 39ichart. finance. yahoohellip วิธีนี้อาจได้รับการแก้ไข ndash Cleb 25 สิงหาคม 15 เวลา 15:01 เช่นเดียวกับ Cleb ไม่ได้ส่งกลับรหัสสถานะ 200 ndash bluerubez 28 ต. ค. 55 ที่ 1:55 Cleb ดูเหมือนจะเป็นเพราะ GOOG ไม่ได้รับการยอมรับจาก API (ไม่เข้าใจว่าเพราะเหตุใดหลังจากย้ายไปยังตัวอักษร Alphabet GOOG แล้ว) ทำงานได้ดีกับ GOOGL และสัญลักษณ์อื่น ๆ ตัวอย่างปรับในกรณี ndash DefOs Oct 28 15 at 2:10 ขยายคำตอบ DefOss ด้วยการสาธิตจริง ตามที่ DefOs ได้กล่าวไว้แล้ว - การใช้ Pandas Datareader ทำให้งานนี้สนุกจริง ๆ โดยดึงข้อมูลประวัติที่มีอยู่ทั้งหมดสำหรับ AAPL ตั้งแต่ปีพ. ศ. 2523-01-01 บันทึกข้อมูลทั้งหมดเป็นไฟล์ CSV d: tempaapldata. csv - 5 แถวแรกฉันสนใจที่จะทำการวิเคราะห์ทางเศรษฐมิติ เกี่ยวกับตราสารอนุพันธ์ทางการเงิน การแฮงเอาท์หลักที่ฉันประสบคือไม่มีแหล่งข้อมูลฟรีที่ดี (อย่างน้อยที่ฉันรู้) สำหรับข้อมูลตัวเลือกประวัติ ด้วยเหตุนี้ฉันต้องการสร้างฐานข้อมูลส่วนบุคคลของตัวเองของราคาตัวเลือกประวัติศาสตร์ ฉันได้หักโครงการนี้ลงเป็นอุปสรรคสำคัญสามประการ: ดูวิธีรับข้อมูลตัวเลือกจากภายใน python เลือกรูปแบบการจัดเก็บข้อมูลโดยอัตโนมัติการรวบรวมข้อมูลรายวันการเลือกข้อมูลในหลามในช่วงฤดูร้อนฉันมีเวลาว่างและร่วมกับฉัน พ่อเพื่อสร้างรูปแบบการลงทุน แม้ว่าจะเป็นแบบง่ายๆ แต่โพสต์นี้เกี่ยวกับการสร้างฐานข้อมูลดังนั้นฉันจึงไม่ต้องอ่านรายละเอียดที่นี่ ก็พอเพียงที่จะบอกว่าฉันต้องการที่จะหาวิธีที่จะได้รับข้อมูลตัวเลือกจากการเงิน yahoo นี่เป็นความท้าทายที่ไม่เหมือนใครเนื่องจากไม่เหมือนกับข้อมูลส่วนได้เสียหรือข้อมูลจากแหล่งข้อมูลอื่น ๆ เช่น FRED ข้อมูลตัวเลือกไม่สามารถดาวน์โหลดไปที่ปุ่ม csv ได้จากทุกที่บนเว็บไซต์ ในขณะที่ฉันอ่านหนังสือยอดเยี่ยมงูหลามสำหรับการวิเคราะห์ข้อมูลโดย Wes McKinney และมีความคิดสำหรับวิธีการใช้โปรแกรมรวบรวมข้อมูลเว็บขั้นพื้นฐานเพื่อแยกวิเคราะห์ html ใน yahoo และส่งคืนข้อมูลในรูปแบบที่เป็นกันเองหลาม เรื่องยาวสั้นฉันเขียนรหัสที่จะทำเพียงแค่ว่าและมันทำให้ทางลงในรุ่น 0.9 ของห้องสมุดแพนด้า (ถ้าคุณ arent คุ้นเคยกับหมีแพนด้าและคุณทำงานกับข้อมูลในหลามแน่นอนคุณควรตรวจสอบออก) ตอนนี้คำสั่งเหล่านี้เพียงไม่กี่คำเท่านั้นที่จำเป็นเพื่อให้ได้ข้อมูลตัวเลือกจาก yahoo Finance: การโทรและทำให้วัตถุมีแพนดาฟาสที่มีข้อมูลเดียวกันกับที่คุณจะพบในหน้าการเงินของ yahoo สำหรับตัวเลือกของ Apple Inc. การเลือกรูปแบบไฟล์ในการเลือกรูปแบบไฟล์ฉันมีข้อควรพิจารณาหลักสองประการคือขนาดไฟล์และความเร็วในการเขียนที่สามารถอ่านได้ เพื่อทดสอบนี้ผมเขียนสคริปต์ง่ายๆที่สร้าง random 4000 by 4000 array numpy และหน้าที่กำหนดไว้สำหรับการเขียนและการอ่านข้อมูลในรูปแบบไฟล์ที่แตกต่างกัน รูปแบบที่ฉันเลือกทำงานคือ csv, hdf5 (.h5) และ MatLab (.mat) ด้านล่างเป็นสคริปต์ที่ฉันใช้ในการรันการทดสอบ: หลังจากที่ฉันมีรหัสนี้ฉันเพียงแค่ยิงขึ้น iPython และรันไฟล์ (filetest. py) และใช้เวทมนตร์ timeit เพื่อดูว่าใช้เวลานานแต่ละสามวิธีการอ่านและเขียน ข้อมูล. ผลลัพธ์ของระยะเวลาพร้อมกับขนาดไฟล์สุดท้ายสรุปไว้ในตารางด้านล่างนี้เป็นเรื่องง่ายที่จะเห็นว่าไฟล์ hdf5 เป็นไฟล์ที่ดีที่สุดในการเลือกเพื่อวัตถุประสงค์ของฉัน ฉันต้องการจะบันทึกที่นี่ว่าเหตุผลรูปแบบไฟล์ hdf5 คือ 12 ขนาดของไฟล์. mat เนื่องจาก dtype ในไฟล์. h5 เป็นแบบลอยตัว 32 บิตขณะที่. dtp เป็นบิต 64 บิต อย่างไรก็ตามสำหรับตัวเลือกหุ้นเราเท่านั้นโดยทั่วไป havecare เกี่ยวกับข้อมูลออกสองตำแหน่งทศนิยมเพื่อความแม่นยำ 32 บิตเป็นจำนวนมาก การดึงข้อมูลโดยอัตโนมัติขั้นตอนสุดท้ายในการเริ่มต้นฐานข้อมูลนี้คือการทำให้กระบวนการเรียกค้นข้อมูลอัตโนมัติ เมื่อต้องการทำเช่นนี้ฉันใช้ cron cron กำหนดการ UNIX ที่เป็นที่นิยม ฉันเรียกใช้ OSX 10.8 Mountain Lion และโดยค่าเริ่มต้นใน 10.8 เครื่องมือ cron ถูกปิดใช้งาน เพื่อแก้ไขปัญหานี้ฉันเพียงแค่วิ่งคำสั่งต่อไปนี้ใน terminal: คำสั่งนี้จะสร้างแฟ้ม etccrontab (ถ้ามันไม่ได้อยู่แล้ว) และได้รับมันพร้อมสำหรับการใช้งานโดย cron ฉันจะไม่ให้คำอธิบายรายละเอียดเกี่ยวกับวิธีการใช้ cron ที่นี่ (เนื่องจากฉันยังค่อนข้างใหม่ที่ฉันเอง) แต่ googling สำหรับมันจะให้ตัวอย่างมากมายและ tutorials แต่ฉันจะให้บรรทัดในแฟ้ม crontab ของฉันที่รันสคริปต์: ขั้นตอนต่อไปคือการเขียนสคริปต์ฉันจะมีการเรียก cron สิ่งนี้จะปรากฏด้านล่าง ฉันมี cron เรียกใช้สคริปต์นี้ในเวลาที่ระบุในแต่ละสัปดาห์และเติมไฟล์ hdf5 ไฟล์ผลลัพธ์จะมีโครงสร้างแบบซ้อนกันดังนี้: สัญกรณ์ CTICKmm-yy หมายถึงตัวเลือกการโทร (C), เครื่องหมายระบุ (TICK) และการหมดอายุของตัวเลือก (mm-yy) ในชุดข้อมูลแต่ละชุดมีสามคอลัมน์ ได้แก่ ราคาการประท้วงราคาซื้อขายล่าสุดของสัญญาสิทธิและปริมาณการซื้อขายหลักทรัพย์ในวันซื้อขายวันสุดท้าย หลังจากรันสคริปต์นี้เป็นเวลา 1 คืนไฟล์ข้อมูล hdf5 ที่เป็นผลลัพธ์มีค่าเท่ากับ 7.648648 MB ถ้าฉันต้องการให้ไฟล์นี้ทำงานในแต่ละวันทำการสำหรับปีขนาดไฟล์สุดท้ายจะต่ำกว่า 2 GB ไม่เลวถ้าคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ฉันเก็บชื่อสัญลักษณ์หรือสิ่งที่ตัวเลือกการทำงานอยู่ในหมีแพนด้า 0.10 หรือก่อนหน้านี้แสดงความคิดเห็นและฉันจะทำให้ดีที่สุดเพื่อตอบสนอง น่ากลัวฉันอยากจะทำอะไรแบบนี้เพราะฉันก็อยากจะทดสอบกลยุทธ์ของฉันด้วย คุณน่าจะเปลี่ยนตัวเลือก 39 จากตัวเลือกการนำเข้า 39 ถึง 39 จาก pandas. io. data นำเข้า options39 แต่นอกเหนือจากที่สคริปต์ของคุณทำงานได้ดี คุณจะยินดีที่จะแบ่งปันข้อมูลตัวเลือกที่คุณรวบรวมมาจนถึงตอนนี้ฉันสามารถตอบสนองความโปรดปรานโดยทำหน้าที่เป็นตัวสำรองสำหรับเรียกใช้สคริปต์ในกรณีที่คุณสูญเสียการเชื่อมต่อไปสองสามวัน ฉันกำลังพิจารณาการทดสอบโดยประมาณโดยใช้ราคาที่สร้างขึ้นโดยใช้ Black8211Scholes แต่ข้อมูลที่แท้จริงนั้นดีขึ้นอย่างเห็นได้ชัด ดีใจที่คุณชอบบทภาพยนตร์ ที่จริงฉันได้หยุดการทำงานของไฟล์ในแต่ละคืนดังนั้นฉันจึงไม่มีข้อมูลมากเกินไป มิฉะนั้นฉันยินดีที่จะแชร์กับคุณ เกี่ยวกับงบการนำเข้า ฉันเป็นนักเขียนชั้นเรียนตัวเลือกในแพนด้า ในขณะที่เขียนโพสต์บล็อกนี้บางส่วนของฟังก์ชันการทำงานที่ฉันใช้ในสคริปต์ถูกรวมเข้ากับเวอร์ชันแพนด้าที่เผยแพร่ดังนั้นฉันจึงเรียกเวอร์ชันท้องถิ่นของฉัน (ในตัวเลือกชื่อไฟล์) ตามที่ฉันใช้แพนด้าเวอร์ชัน FYI: เป็นจริงบางอย่างเกิดขึ้นกับการเปลี่ยนแปลง API ตัวเลือกชั้นภายในแพนด้าในขณะนี้ หากการเปลี่ยนแปลงเกิดขึ้นวิธีการหนึ่งในผู้ร่วมให้ข้อมูลรายอื่น ๆ แนะนำให้ใช้โค้ดส่วนนี้ในสคริปต์นี้ล้าสมัย อย่างน้อยที่สุดก็ควรจะยังคงได้รับคนเริ่มต้นฉันอยู่ในระหว่างการตั้งค่าฐานข้อมูลอนุพันธ์ที่มีขนาดใหญ่ การแยกวิเคราะห์จากเว็บลิงค์ทั้งหมดพร้อมแล้ว ที่ฉันสูญเสียบิตคือวิธีการสร้างฐานข้อมูลของตัวเลือกทั้งหมดในลักษณะที่ช่วยให้การคำนวณเช่น SKEW ฯลฯ โดยไม่ต้องเลือกตัวเลือกแต่ละตัวด้วยตนเองทุกครั้งที่ทำคำนวณ วิธีการสร้างการอ้างอิงทั่วไป ฉันเป็นบิตหายไปที่นี่และต้องการจัดเรียงที่ออกก่อนก่อนที่จะไปข้างหน้ากับการสร้างข้อมูล ฉันเชื่อว่าลำดับที่ถูกต้องใน tuple คืนจะทำให้โทร aapl. getoptionsdata () Hey Martin คุณมีสิทธิ์ เมื่อฉันเพิ่มตัวเลือกการรวบรวมโค้ดลงในแพนด้าแล้วฉันได้รับสายเรียกคืนกลับ getoptionsdata ก่อน ไม่แน่ใจว่าใครเป็นคนเปลี่ยนเมื่อไหร่ ฉันอัปเดตโค้ดในโพสต์เพื่อใช้การใส่ที่ถูกต้องการโทรสั่งตอนนี้ ฉันว่านี้จะเป็นประโยชน์สวยสามารถดาวน์โหลดราคาตัวเลือก เริ่มต้นด้วยการใช้สคริปต์ที่คุณระบุไว้ด้านบน (สวยมาก) ฉันมี pandas 0.13.1 แต่ดูเหมือนว่าเสียอย่างสมบูรณ์ ข้อผิดพลาดเกิดขึ้นกับบรรทัดต่อไปนี้: rawcalls option. getforwarddata (months100, callTrue, putFalse, nearFalse, abovebelow6) ตั้งแต่ฉันต้องการได้รับข้อมูลตัวเลือกทั้งหมดฉันคิดว่าฉันต้องใช้วิธี getforwarddata วิธีการอื่น ๆ ดูเหมือนจะสนับสนุนเฉพาะเดือนที่ต้องการเท่านั้น ข้อผิดพลาดค่อนข้างยาว แต่บรรทัดคู่สุดท้ายคือ: File quotusrlocallibpython2.7dist-packagespandasioparsers. pyquot, 1653 บรรทัดใน nextline เพิ่ม StopIteration StopIteration ใครรู้วิธีการแก้ไขปัญหานี้ฉันยังใช้ Ubuntu Linux ฉันคิดว่าเวอร์ชัน 0.11 ของ Pandas ทำงานได้ค่อนข้างมากแม้ว่าจะไม่ได้รับราคาทางเลือกทั้งหมด ฉันไม่แน่ใจว่าจะใช้ pip ในการปรับลดรุ่น ณ จุดนี้ได้อย่างไรดังนั้นฉันอาจติดพยายามรับเวอร์ชัน 0.13.1 ในการทำงาน Hey Anonymous (sorry don39t รู้ชื่อของคุณหรือถ้าเป็น Anonymous - ที่น่ากลัว) ขออภัยที่ฟังก์ชันเหล่านี้ aren39t ทำงานอย่างถูกต้อง ฉันเขียนโค้ดนี้เมื่อปีที่แล้วและในขณะนี้ทำงานได้โดยไม่มีปัญหาใด ๆ หมีแพนด้าอยู่ระหว่างการพัฒนาอย่างหนักและดูเหมือนว่าตั้งแต่ช่วงเวลาที่ฉันเขียนโค้ดนี้ api ก็ผุดขึ้นมา แต่น่าเสียดายที่ฉันไม่มีเวลาที่จะต้องผ่านและเปลี่ยนรหัสจากโพสต์นี้เพื่อให้ทำงานกับ 0.13 ฉันสามารถพูดได้ว่าฟังก์ชันทั้งหมดที่อธิบายไว้ในบทความนี้ยังคงมีอยู่กับ v0.13 แต่ลายเซ็นของวิธีการบางอย่างอาจมีการเปลี่ยนแปลง ผมเชื่อว่า docstrings สำหรับแต่ละวิธีของคลาส Options ควรมีรายละเอียดมากพอที่จะทำให้คุณมีความคิดที่ดีเกี่ยวกับสิ่งที่ต้องเปลี่ยน คุณสามารถค้นหาได้ที่นี่: githubpydatapandasblobmasterpandasiodata. pyL545-L905 หากคุณรู้สึกดีขึ้นและทำขั้นตอนการเปลี่ยนแปลงที่จำเป็นโปรดแจ้งให้เราทราบเราจะอัปเดตโค้ดที่นี่เพื่อแสดงข้อมูลเหล่านี้ ป. ล. ถ้าคุณลองและกำลังมีปัญหาเวลาโพสต์ที่นี่อีกครั้งและฉันจะพยายามให้คำแนะนำ ฉันยุ่งกับโปรเจคอื่น แต่โดยทั่วไปฉันเพิ่งเปลี่ยนแปลงสองครั้งเพื่อให้ได้สิ่งต่างๆ เพื่อความเรียบง่ายฉันเพิ่งทำการเปลี่ยนแปลงไปที่ data. py ฉันคิดว่าดัชนี inmonth และ inyear ถูกคำนวณไม่ถูกต้อง นอกจากนี้ในบางกรณีเฟรมส่งกลับไม่มี เฟรมส่งกลับ None ทำให้เกิดความผิดพลาด ถ้าใครมีเวลาที่โค้ดควรได้รับการอัปเดตเป็นแบบสอบถามเพียงข้อมูลข้อมูลที่มีอยู่ในช่วงเวลาของเดือนที่ผ่านมาฉันไม่แน่ใจว่าจะแยกวิเคราะห์ข้อมูลนี้จาก HTML อย่างไร ตอนนี้จะมีการค้นหา Yahoo สำหรับข้อมูลแต่ละเดือนแม้ว่าจะไม่มีตัวเลือกสำหรับเดือนที่แล้วสำหรับเมธอด getforwarddata นี่คือผลลัพธ์ของลินุกซ์ diff สำหรับการเปลี่ยนแปลงที่ฉันทำ: diff pandasiodata. py pandas.01iodata. py 25d24 lt DEBUG True 538,541d536 lt lt if (len (data) 0): lt return ไม่มี 590,595c585 lt ลอง: lt ตัวเอง สัญลักษณ์ symbol. upper () lt except: lt msg quotsymbol ต้องเป็น stringquot ที่ถูกต้อง lt เพิ่ม ValueError (msg) lt-gt self. symbol symbol. upper () 860,866c850,861 lt lt inyears lt สำหรับ i, m in enumerate (ปีที่ 1) gt gt ระบุว่ามีกี่รายการในเดือนที่ผ่านมาไป 12 gt tochange (เดือนที่ 1) gt - gt 0 gt สำหรับ i ในช่วง (เดือน): gt if inmonthsi gt 12: gt inmonthsi - 12 gt tochange 1 gt gt เปลี่ยนรายการที่เกี่ยวข้องในรายการที่เหลือ gt สำหรับ i ในช่วง (1, tochange 1): gt inyears-i 1 875,878c870,873 lt สำหรับ i ในช่วง (เดือน): lt เมตร inmonthsi lt y2 inyearsi lt ถ้า DEBUG: พิมพ์ quotGetting s: ssquot (self. symbol, m2, y2) - gt สำหรับ mon ในช่วง (เดือน): gt m2 inmonthsmon gt y2 inyearsmon gt 892,895d886 lt ถ้าเฟรมไม่มี: lt if DEBUG: พิมพ์ 39. ไม่มีข้อมูล 39 lt continue lt สวัสดีขอขอบคุณที่ทำงานที่ดีของคุณ . ดูเหมือนว่ามันเสียในปัจจุบัน - อาจเปลี่ยน layoutschema ใน yahoo (เป็นที่ tableloc 13 ในสาย getoptiondata ()) ฉันจะแก้ปัญหาได้เมื่อฉันมีเวลาที่นี่รายละเอียดเพื่อให้ห่างไกล: เชื่อมต่อกับ pqev ดีบักเกอร์ (สร้าง 135.1057) Traceback (สายล่าสุดล่าสุด): ไฟล์ quotusrsharepycharmhelperspydevpydevd. pyquot, line 1733, ใน debugger. run (setup39file39, None, None) ไฟล์ quotusrsharepycharmhelperspydevpydevd. pyquot, line 1226, ใน run pydevimports. execfile (ไฟล์, globals, locals) รันไฟล์สคริปต์ quothomechrisdevelopsrctradingoptions. pyquot บรรทัดที่ 5 ในทำให้เรียก aapl. getoptionsdata (expirydate (2015, 1, 16)) ไฟล์ quotusrlibpython2.7dist-packagespandasiodata. pyquot บรรทัด 630 ใน getoptionsdata self. getcalldata) ไฟล์ quotusrlibpython2.7dist-packagespandasiodata. pyquot , บรรทัด 748 ใน getputdata return self. getoptiondata (เดือนปีหมดอายุ 13, 39puts39) ไฟล์ quotusrlibpython2.7dist-packagespandasiodata. pyquot, บรรทัด 673 ใน getoptiondata quotnotquot. format (tableloc, nt. ตัวเลือกจากวันที่นำเข้า datetime aapl ตัวเลือก (39AAPL39, quotyemquot) ทำให้เรียก aapl. getoptionsdata (expirydate (2015, 1, 16)) In3: นำเข้าหมีแพนด้า In4: pandas. version Out4: 390.13.139 สวัสดีขอบคุณสำหรับความคิดเห็น รหัสนี้เสียไปเนื่องจากมีการเปลี่ยนแปลงใน Yahoo Finance API ฉันคิดว่านักพัฒนาหมีแพนด้ามีรหัสต้นฉบับที่ฉันมอบให้ ดูการอภิปรายที่เกี่ยวข้องที่นี่: githubpydatapandaspull8631 สวัสดี Spencer ขอโทษสำหรับคำถามที่ไม่ระบุตัวตน แต่เมื่อคุณรันโปรแกรมนี้สำหรับทุก ticker ในรายการของ NASDAQ และสัญลักษณ์ NYSE ระยะเวลาที่ใช้สำหรับการทำซ้ำทั้งหมด Anonymous ไม่มีปัญหา รูทีนนี้ใช้เวลานานในการทำงาน อาจอยู่ในลำดับ 6-8 ชั่วโมง มันอาจจะเพิ่มขึ้นไม่น้อยโดยการร้องขอหลายครั้งโดยใช้โมดูลเกลียวและคิวในห้องสมุดมาตรฐาน ฉันมีตัวอย่างของการทำเช่นนี้กับข้อมูลทุนปกติที่นี่: gist. githubspencerlyon28a90d9fdffd15e3ecddb Spencer - ฉันใหม่มากหลามและการเขียนโปรแกรมโดยทั่วไป แต่พบว่ามีประสิทธิภาพและน่าสนใจกับงานวิจัยน้อยฉันได้ทำ จนถึงตอนนี้ฉันได้รวบรวมโปรแกรมที่เรียบง่ายเพื่อทำสิ่งที่คล้ายคลึงกัน นี่คือสิ่งที่ฉันมีจนถึงขณะนี้: นำเข้า datetime เป็น pandas นำเข้า dt เป็น pd นำเข้า numpy เป็น np จากการนำเข้า pandas. io. data จาก pandas นำเข้า DataFrame นำเข้า h5py เป็น h5 num 0 newdatapd. DataFrame () ในขณะ num lt tickers. size: ลองใช้: ตัวเลือก itickers39Symbol39num ตัวเลือก (i, quotyahooquot) data options. getoptionsdata () newdatanewdata. append (data): num numum1 พิมพ์ num num1 ในรายการ ticker ของฉันฉันมี 6280 สัญลักษณ์หรือดังนั้นและฉันพบว่า getoptionsdata ดำเนินการได้เร็วกว่า getalldata วิธีการ ขณะนี้ทำงานในเวลาประมาณ 3 ชั่วโมง เป้าหมายของฉันคือการตัดที่ 16 มันยังคงอยู่ในขั้นตอนพื้นฐานมาก แต่มันไม่ทำงานและรวบรวมข้อมูลสำหรับ tickers ที่มีมัน หากคุณมีเคล็ดลับหรือข้อเสนอแนะในการปรับปรุงประสิทธิภาพการทำงาน I39m หูทั้งหมด ฉันรู้ว่าโครงสร้างการวนรอบอาจไม่ได้มีประสิทธิภาพมากที่สุด แต่ทุกอย่างสำหรับฉันคือการทดลองและข้อผิดพลาด ถ้าเรื่องนี้เป็นเรื่องเล็กน้อยและคำถามโง่ ๆ ฉันขอโทษอีกครั้งฉันก็เป็นคนใหม่และการเรียนรู้ ฉันคิดว่าคอขวด (ส่วนที่ช้าที่สุด) ของโปรแกรมนี้กำลังดึงข้อมูลจากเว็บ การใช้เครื่องมือ Queue และ Threading ในไลบรารีมาตรฐานเช่นเดียวกับที่ฉันทำในตัวอย่างที่ฉันโพสต์ลิงก์ไปอาจเป็นวิธีที่ดีที่สุดในการเพิ่มความเร็วในส่วนนี้ ตัวเลือกอื่นที่ค่อนข้างง่ายในการเรียกข้อมูลแบบขนานคือการเขียนฟังก์ชันที่ได้รับข้อมูลสำหรับรายการเดียว จากนั้นคุณสามารถใช้สิ่งที่ต้องการขนาน IPython เพื่อทำแผนที่ฟังก์ชันเหนือรายการ tickers แบบขนาน ตัวอย่างของการใช้แผนที่แบบขนานสามารถพบได้ที่นี่: ipython. orgipython-doc2parallelparalleldemos. html โดยวิธีการลูปเดียวที่นี่ไม่ได้เป็นสิ่งที่ต้องใช้รหัสนี้เป็นเวลานานในการทำงาน - ดังนั้นอย่ากังวลกับเรื่องนี้ ฉันขอโทษ แต่ฉันไม่ได้เข้าชมรหัสเฉพาะนี้ในช่วง 2 ปีที่ผ่านมา หมีแพนด้าเคลื่อนไหวค่อนข้างรวดเร็วดังนั้นจึงไม่แปลกใจที่รหัสในโพสต์นี้ไม่ทำงาน ตอนนี้ฉันไม่มีเวลาในการแก้ปัญหาสคริปต์ แต่ฉันขอแนะนำให้ดูเอกสารประกอบของ pandas สำหรับคุณลักษณะการขูดราคาตัวเลือกปัจจุบัน คุณสามารถค้นหาได้ที่นี่ pandas. pydata. orgpandas-docsstableremotedata. htmlyahoo-finance - options สำหรับรายการ ticker ฉันได้รับพวกเขาจากทั้งสอง URL: ฉัน don39t รู้มากเกี่ยวกับการเขียนโปรแกรม แต่ฉันได้มีจำนวนมากของไฟล์สัญลักษณ์ประจำปีจาก intradata. co แต่ฉันต้องมีตัวอย่างปี 2012-2015 ในไฟล์เดียวและ เพราะฉันต้องการแผนภูมิออกในซอฟต์แวร์ของฉันเช่นแผนภูมิขยายที่เป็นไปได้ที่จะทำกับสคริปต์นี้ดาวน์โหลดรุ่นล่าสุดสำหรับ Mac OS X ดาวน์โหลดการเปิดตัวรุ่นล่าสุดดาวน์โหลดรุ่นล่าสุดสำหรับ Windows ดาวน์โหลดรุ่นล่าสุดของแหล่งที่มาของคีย์สาธารณะของ Python OpenPGP และ executables ไบนารีจะถูกเซ็นชื่อโดยผู้จัดการเผยแพร่โดยใช้คีย์ OpenPGP ของตน ผู้จัดการเผยแพร่และผู้สร้างไบนารีตั้งแต่ Python 2.3 ได้: หมายเหตุ: Barrys key id A74B06BF ใช้เพื่อลงชื่อใน Python 2.6.8 และ 2.6.9 release รหัสที่สำคัญของเขา EA5BBD71 ถูกใช้เพื่อลงชื่อเข้าใช้ Python 2.6 และ 3.0 รุ่นอื่น ๆ ทั้งหมด รหัสกุญแจของเขา ED9D77D5 เป็นคีย์ v3 และใช้เพื่อลงชื่อเข้าใช้เวอร์ชันเก่า คุณสามารถนำเข้ากุญแจสาธารณะของผู้จัดการรีซอร์สได้โดยดาวน์โหลดไฟล์คีย์สาธารณะจากที่นี่แล้วเรียกใช้หรือคว้าคีย์แต่ละคีย์โดยตรงจากเครือข่าย keyserver โดยใช้คำสั่งนี้ในหน้าดาวน์โหลดเฉพาะรุ่นคุณควรเห็นลิงก์ไปที่ ทั้งไฟล์ที่สามารถดาวน์โหลดได้และไฟล์ลายเซ็นที่ถอดออกได้ เมื่อต้องการตรวจสอบความถูกต้องของการดาวน์โหลดให้คว้าทั้งสองไฟล์จากนั้นให้รันคำสั่งนี้: โปรดทราบว่าคุณต้องใช้ชื่อไฟล์ลายเซ็นและคุณควรใช้ไฟล์ที่เหมาะสมกับการดาวน์โหลดที่คุณกำลังตรวจสอบ (คำแนะนำเหล่านี้มุ่งเน้นไปที่ผู้ใช้บรรทัดคำสั่ง GnuPG และ Unix ผลงานคำแนะนำสำหรับแพลตฟอร์มอื่น ๆ และโปรแกรม OpenPGP ยินดีต้อนรับ) รายการที่เป็นประโยชน์อื่น ๆ ค้นหาโมดูล Python ของบุคคลที่ 3 ดัชนีบรรจุภัณฑ์มีหลายรายการ คุณสามารถดูเอกสารออนไลน์มาตรฐานหรือดาวน์โหลดได้ใน HTML, PostScript, PDF และรูปแบบอื่น ๆ ดูหน้าเอกสารหลัก มีข้อมูลเกี่ยวกับเครื่องมือสำหรับการเปิดไฟล์ที่จัดเก็บไว้ใน python. org เคล็ดลับ แม้ว่าคุณจะดาวน์โหลดไบนารีสำเร็จรูปสำหรับแพลตฟอร์มของคุณคุณก็ควรดาวน์โหลดแหล่งข้อมูลด้วย ซึ่งช่วยให้คุณสามารถเรียกดูไลบรารีมาตรฐาน (Lib ไดเรคทอรี่) และคอลเล็กชันมาตรฐานของ Demo (Demo) และเครื่องมือ (Tools) ที่มาพร้อมกับมัน Theres มากที่คุณสามารถเรียนรู้จากแหล่งที่มานอกจากนี้ยังมีชุดของแพคเกจ Emacs ที่ Emacsing Pythoneer อาจพบว่ามีประโยชน์ ซึ่งรวมถึงโหมดที่สำคัญสำหรับการแก้ไข Python, C, C, Java ฯลฯ ส่วนติดต่อดีบัก Python และอื่น ๆ แพคเกจส่วนใหญ่เข้ากันได้กับ Emacs และ XEmacs ต้องการมีส่วนร่วมต้องการมีส่วนร่วมดูคู่มือนักพัฒนาซอฟต์แวร์ Python เพื่อเรียนรู้เกี่ยวกับการจัดการการพัฒนา Python ขณะนี้เรามีฟังก์ชันง่ายๆในการดาวน์โหลดข้อมูลสต็อคที่ผ่านมาจาก Yahoo โปรดดูว่าเราสามารถใช้เทคนิคเดียวกันนี้เพื่อดาวน์โหลดข้อมูลจาก Google ได้หรือไม่ การเงิน. หากเราไปที่หน้าหลักสำหรับการเงินของ Google และคลิกที่ AAPL เราจะเห็นลิงก์สำหรับราคาในอดีตที่มุมบนซ้าย การคลิกที่ลิงก์นั้นจะแสดงหน้าราคาในอดีต โดยค่าเริ่มต้นหน้าจะแสดงตารางรูปแบบที่ดีของราคาด้วยราคาล่าสุดที่ด้านบนของหน้า โปรดสังเกตว่ามีตัวเลือกในการเลือกช่วงวันที่สองราคาและเช่นเดียวกับ Yahoo มีลิงก์เพื่อดาวน์โหลดข้อมูลลงในสเปรดชีต ตอนนี้เราเลือกช่วงวันที่ (ในกรณีนี้ 1 พฤศจิกายน 8211 พฤศจิกายน 30) และคลิกปุ่มอัปเดต จากนั้นเราสามารถดาวน์โหลดข้อมูลโดยใช้ลิงก์ทางด้านขวาของหน้า โดยค่าเริ่มต้นจะดาวน์โหลดเป็น 8220data. csv8221 เราสรุปข้อมูลต่อไปนี้: ข้อมูลนี้ดูคล้ายกับข้อมูล Yahoo แต่ไม่มีการปรับปิด ดูเหมือนว่า Google จะปรับราคาสำหรับเราดังนั้นเราจึงไม่จำเป็นต้องใช้ นอกจากนี้สังเกตเห็นวันที่มีการจัดรูปแบบที่แตกต่างกัน ควรจะแปลงเป็นรูปแบบมาตรฐานของเราที่เรากำหนดไว้ในคลาส Quote ของเราในโพสต์ก่อนหน้านี้ได้ง่ายมาก ตอนนี้เราต้องถอดรหัสการเชื่อมโยงที่ใช้เพื่อรับข้อมูล เราคัดลอกลิงก์โดยการคลิกขวาและเลือก Link 8220Copy link8221 และท้ายด้วยข้อความต่อไปนี้เรามีตัวเลือกการสืบค้นดังนี้: cid, วันเริ่มต้น, สิ้นสุด, num และเอาต์พุต ลองดูค่าวันที่ What8217s ขึ้นกับสัญญาณเปอร์เซ็นต์เมื่อใดก็ตามที่คุณเห็น 82208221 เครื่องหมายใน URL หมายความว่าได้รับการเข้ารหัส url ด้วยการค้นหา google เราสามารถหาไซต์จำนวนมากที่จะเข้ารหัสและถอดรหัสสตริง URL โดยการถอดรหัสสตริง URL ดิบเราท้ายด้วย: ที่ดูง่ายมากที่จะคิดออก มีปัญหาเพียงอย่างเดียว cid อาจเป็น id ฐานข้อมูลบางอย่าง แต่โดยการสังเกตสตริงแบบสอบถามสำหรับหน้าหลักเราจะเห็นว่ามีการใช้ตัวเลือก 8220q8221 ที่ใช้ชื่อการแลกเปลี่ยนและสัญลักษณ์ โดยการเล่นรอบกับชุดค่าผสมต่างๆของพารามิเตอร์เหล่านี้เราพบว่าเราสามารถใช้ตัวเลือก q โดยไม่มีการแลกเปลี่ยนและตัวเลือก num ไม่ดูเหมือนจะจำเป็น เราสามารถทำให้สตริง URL ง่ายขึ้น: สิ่งเดียวที่เหลือคือตอนนี้ให้แบ่งย่อยคลาส Quote เดิมของเราและกำหนดค่าให้สร้างสตริง URL ของเราและแปลงวันที่เป็นรูปแบบทั่วไปของเรา นี่คือสิ่งที่ฉันสิ้นสุดกับ: หนึ่งนี้แม้จะง่ายกว่ารุ่น Yahoo ไม่จำเป็นต้องคำนวณราคาที่ปรับแล้ว ความแตกต่างหลักคือรูปแบบ URL ที่ต่างกันและการจัดรูปแบบเวลา คุณสามารถดาวน์โหลดไฟล์ที่มีคลาส Quote และตรวจสอบคำสั่งได้สองสามข้อที่นี่: google. py ในโพสต์ในอนาคตเราจะรวมคลาสเหล่านี้ทั้งหมดและสร้างยูทิลิตีบรรทัดคำสั่งของ Python เพื่อดาวน์โหลดข้อมูลที่ผ่านมาจากแหล่งข้อมูลต่างๆเหล่านี้ ดิสก์ในรูปแบบที่สอดคล้องกัน คอยติดตาม
Comments
Post a Comment