私は、関数を使用してdataDF列をループし、最初の値を見つけて1番目に対応する四分値dataDF列から値を増やします。私は適用で関数を使用する予定ですが、私はshift()を適切に使用しているとは思わない。私がdataDF.shift()を返そうとすると、エラーが発生します。私はPythonに新しいので、行を次の行と比較する方法やshift()で間違っていることについてのヒントがあれば幸いです。shift()を使用して行要素を比較する
サンプルデータ:
return dataDF.head(20).to_dict()
{'Quarter': {246: '2008q3',
247: '2008q4',
248: '2009q1',
249: '2009q2',
250: '2009q3',
251: '2009q4',
252: '2010q1',
253: '2010q2',
254: '2010q3',
255: '2010q4',
256: '2011q1',
257: '2011q2',
258: '2011q3',
259: '2011q4',
260: '2012q1',
261: '2012q2',
262: '2012q3',
263: '2012q4',
264: '2013q1',
265: '2013q2'},
'dataDF': {246: 14843.0,
247: 14549.9,
248: 14383.9,
249: 14340.4,
250: 14384.1,
251: 14566.5,
252: 14681.1,
253: 14888.6,
254: 15057.700000000001,
255: 15230.200000000001,
256: 15238.4,
257: 15460.9,
258: 15587.1,
259: 15785.299999999999,
260: 15973.9,
261: 16121.9,
262: 16227.9,
263: 16297.299999999999,
264: 16475.400000000001,
265: 16541.400000000001}}
コード:
def find_end(x):
qrts = []
if (dataDF < dataDF.shift()):
qrts.append(dataDF.iloc[0,:].shift(1))
return qrts
感謝。私はシフトを完全に後ろ向きにしようとしていました。 – user3476463