ข้อมูลของฉันอาจมีหลายเหตุการณ์ในวันที่กำหนดหรือไม่มีเหตุการณ์ในวันที่ ฉันใช้เหตุการณ์เหล่านี้นับตามวันที่และวางแผนไว้ อย่างไรก็ตามเมื่อฉันวางโครงเรื่องทั้งสองซีรีส์ของฉันไม่ตรงกันเสมอไป
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
ในโค้ดด้านบนidxจะกลายเป็นช่วงของ say 30 วัน 09-01-2013 ถึง 09-30-2013 อย่างไรก็ตามSอาจมีเวลาเพียง 25 หรือ 26 วันเนื่องจากไม่มีเหตุการณ์ใด ๆ เกิดขึ้นในวันที่กำหนด จากนั้นฉันจะได้รับ AssertionError เนื่องจากขนาดไม่ตรงกันเมื่อฉันพยายามพล็อต:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
อะไรคือวิธีที่เหมาะสมในการจัดการกับปัญหานี้? ฉันต้องการลบวันที่ที่ไม่มีค่าออกจากIDXหรือ (ซึ่งฉันอยากจะทำ) คือเพิ่มวันที่ที่ขาดหายไปในชุดด้วยจำนวน 0 ฉันอยากจะมีกราฟเต็ม 30 วันที่มีค่า 0 หากแนวทางนี้ถูกต้องมีข้อเสนอแนะในการเริ่มต้นอย่างไร ฉันต้องการreindex
ฟังก์ชันไดนามิกบางประเภทหรือไม่?
นี่คือตัวอย่างS ( df.groupby(['simpleDate']).size()
) โปรดสังเกตว่าไม่มีรายการสำหรับ 04 และ 05
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
reindex
เป็นฟังก์ชันที่น่าทึ่ง สามารถ (1) จัดลำดับข้อมูลที่มีอยู่ใหม่เพื่อให้ตรงกับชุดป้ายกำกับใหม่ (2) แทรกแถวใหม่ที่ไม่มีป้ายกำกับมาก่อน (3) กรอกข้อมูลสำหรับป้ายกำกับที่ขาดหายไป (รวมถึงการเติมไปข้างหน้า / ย้อนกลับ) (4) เลือกแถว ตามป้าย!