ฉันถามคำถามไปแล้ว แต่คำอธิบายยังไม่ถูกต้องเพียงพอ คนฉลาดในฟอรัมนี้เสนอวิธีแก้ปัญหาแล้ว แต่ฉันลืม (ขออภัย) ที่ต้องระบุให้แน่ชัดว่าหากมีเลขศูนย์ในคอลัมน์ที่เกี่ยวข้อง ก็ควรเก็บค่าเหล่านั้นไว้
สวัสดี ฉันมี dataframe เหมือนด้านล่าง
2014 2015 2016 2017 2018 2019
2014 10 20 30 40 0 5
2015 0 0 200 0 100 0
2016 0 0 200 140 35 10
2017 0 0 0 20 0 12
ฉันต้องการผลลัพธ์เช่นนี้:
yearStart yearStart+1 yearStart+2 yearStart+3 yearStart+4
0 10 20 30 40 0
1 0 200 0 100 0
2 200 140 35 10 0
3 20 0 12 0 0
แนวคิดคือให้เลือกคอลัมน์ระหว่างวันที่สองวันในแต่ละแถว:
ดัชนีและดัชนี +เดลต้า โดยมีพารามิเตอร์เดลต้า (ในตัวอย่างนี้ 4) เพื่อใส่ไว้ในดาต้าเฟรม
ด้วย iterrows() มันใช้เวลานานเกินไป
ฉันก็พยายามด้วย
df1 = df.apply(lambda x: pd.Series(x[x.keys()>=x.index],1)).fillna(0).astype(int)
แต่มันใช้งานไม่ได้:
TypeError: ('Index(...) must be called with a collection of some kind,
1 was passed', 'occurred at index 2014')
ขอบคุณ