IPO ของบริษัทเทคโนโลยีรายปีในทุกตลาดหลักทรัพย์
แต่ละบริษัทในพจนานุกรม listings มีปี IPO อยู่ระหว่างปี 1972 ถึง 2017 ดังนั้นในบริบทนี้ จึงเหมาะสมที่จะพิจารณาคอลัมน์ 'IPO Year' ของแต่ละชีตเป็นตัวแปรเชิงหมวดหมู่ที่มีลำดับชัดเจน แม้ว่าจะมี dtype เป็น float64 ก็ตาม
ในแบบฝึกหัดนี้ จะรวมข้อมูลจากทั้งสามตลาดหลักทรัพย์และพล็อตการกระจายของปี IPO สำหรับบริษัทในภาคเทคโนโลยี โดยได้นำเข้า pandas เป็น pd และ matplotlib.pyplot เป็น plt แล้ว และพจนานุกรม listings จากแบบฝึกหัดก่อนหน้าอยู่ใน workspace ของคุณ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การนำเข้าและจัดการข้อมูลทางการเงินใน Python
คำแนะนำการฝึกหัด
- ใช้ for loop โดยมีตัวแปร iterator ชื่อ
exchangeที่เก็บชื่อของแต่ละตลาดหลักทรัพย์- ในแต่ละรอบ ให้ append DataFrame ที่ตรงกับคีย์
exchangeในlistingsเข้าไปในall_listings
- ในแต่ละรอบ ให้ append DataFrame ที่ตรงกับคีย์
- หลังจาก loop ทำงานเสร็จสิ้น ให้ใช้
pd.concat()เพื่อรวม DataFrame ทั้งสามรายการในall_listingsและกำหนดผลลัพธ์ให้กับlisting_data - กรอง
listing_dataเฉพาะบริษัทประเภท'Technology'และกำหนดผลลัพธ์ให้กับtech_companies - กำหนดคอลัมน์
'IPO Year'จากtech_companiesให้กับipo_years - สำหรับข้อมูลนี้ ให้ใช้
.dropna()เพื่อลบค่าที่หายไป และ.astype()เพื่อแปลงเป็นint - ใช้
.value_counts()กับipo_yearsจากนั้นเรียงลำดับปีจากน้อยไปมาก และสร้างกราฟแท่งที่มีหัวข้อว่า'Tech IPOs by Year' - หมุน
xticks45 องศา แล้วแสดงผลลัพธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create lists
exchanges = ['amex', 'nasdaq', 'nyse']
all_listings = []
# Use for loop to create listing_data
for exchange in exchanges:
all_listings.____(____[____])
# Combine DataFrames
listing_data = pd.____(____)
# Select tech companies
tech_companies = listing_data[____.____ == 'Technology']
# Create ipo_years
ipo_years = ____[____]
# Drop missing values and convert to int
ipo_years = ipo_years.____().____(int)
# Count values, sort ascending by year, and create a bar plot
ipo_years.____().plot(kind=____, ____='Tech IPOs by Year')
# Rotate xticks and show result
plt.xticks(____=____)
# Show the plot
plt.show()