Saya sudah menanyakan pertanyaan saya tetapi deskripsinya kurang akurat. Orang-orang pintar di forum ini sudah mengusulkan solusi, tapi saya lupa (maaf) secara tepat bahwa jika ada angka nol di kolom yang relevan, maka angka tersebut harus dipertahankan.
Halo Saya memiliki kerangka data seperti di bawah ini
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
Saya perlu mendapatkan hasil seperti ini:
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
Idenya adalah untuk memilih di setiap baris, kolom di antara dua tanggal:
indeks dan indeks +delta,dengan delta sebagai parameter (dalam contoh ini 4) untuk menempatkannya dalam kerangka data.
Dengan iterrows(), dibutuhkan terlalu banyak waktu.
Saya mencoba dengan
df1 = df.apply(lambda x: pd.Series(x[x.keys()>=x.index],1)).fillna(0).astype(int)
tapi itu tidak berhasil:
TypeError: ('Index(...) must be called with a collection of some kind,
1 was passed', 'occurred at index 2014')
Terima kasih