我已經問過我的問題,但在描述中它不夠準確。 這個論壇上的聰明人已經提出瞭解決方案,但我忘了(抱歉)要精確地說,如果在相關列中有零,應該保留它們。如何(適用)根據索引或其他列選擇和複製數據框中的特定列
你好,我有一個像下面
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
的想法是每行中選擇,兩個日期之間的列:
索引和索引+增量,用delta參數(在本例中爲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')
謝謝
的可能的複製[熊貓dataframe:如何複製別人的一些列根據行中的值](https://stackoverflow.com/questions/46283564/panda-dataframe-how-to-copy-some-columns-in-others-according-to-a-value-in-the ) – GPhilo
你應該編輯你的第一個問題,澄清你的要求,而不是開一個與第一個問題基本相同的新問題。 – GPhilo
抱歉,我是這個論壇的初學者。我爲我笨拙而道歉。無論如何謝謝你。有些零必須保留的事實讓我有理由認爲這是一個不同的情況。 – phil