แบ่งวันของเดือนในพจนานุกรม Python pandas
Sep 27 2020
ฉันมีรายชื่อหุ้นดังต่อไปนี้:
สำหรับแต่ละคนฉันขอแยกตามวันของเดือนตามรูปวาดอธิบายนี้:
ด้วยการแยกนี้ฉันสามารถทำผลตอบแทนสะสมในแต่ละวันและแยกตามผลตอบแทนสะสมสูงสุดและต่ำสุดสำหรับสัญลักษณ์หุ้นแต่ละตัว
ฉันกำลังทำสิ่งต่อไปนี้ (ตัวอย่างจากรายการหุ้นอื่น) จาก SO: เรียกรายงานจากพจนานุกรมของดาต้าเฟรม :
data_dict = dict() # create an empty dict here
for k, df in df_dict.items():
df_dict[k]['Return %'] = df.iloc[:, 0].pct_change(-1)*100
# aggregate the max and min of Return
mm = df_dict[k]['Return %'].agg(['max', 'min'])
# add it to the dict, with ticker as the key
data_dict[k] = {'max': mm.max(), 'min': mm.min()}
# convert to a dataframe if you want
mm_df = pd.DataFrame.from_dict(data_dict, orient='index')
# display(mm_df)
max min
aapl 8.70284 -4.90070
msft 6.60377 -4.08443
ส่งผลให้เกิดการวิเคราะห์เชิงเส้นของหุ้นในรายการและไม่แยกตามวันตามที่ฉันต้องการทำตามรูปด้านบน
คำถาม:
- ฉันจะแทรกขั้นตอนเพื่อแยกตามวันของเดือนแล้วดำเนินการตามโค้ดด้านบนได้อย่างไร
คำตอบ
kyc12 Sep 28 2020 at 23:40
คุณสามารถใช้pandas.groupbyและใช้datetime.date()เป็นฟิลด์การจัดกลุ่ม จากนั้นคุณสามารถใช้sumโอเปอเรเตอร์บนวัตถุกลุ่มเพื่อคำนวณผลตอบแทนรายวัน โพสต์นี้แสดงการใช้groupbyกับวันที่และเวลา