मेरे पास एक पांडा df है, जिसे मैंने shift() मूल df के माध्यम से पुनरावृत्त करने वाले फ़ंक्शन का उपयोग करके बनाया है:

for i in range(2, 4):
    df["lag_{}".format(i)] = df.x.shift(i)

तो वास्तविक x कॉलम और lag2-lag10 कॉलम शिफ्ट किए गए x मानों के साथ होंगे। मैंने इस डेटासेट को एक कदम आगे की भविष्यवाणी करने के लिए प्रतिगमन मॉडल के लिए प्रशिक्षित किया है। इस नए नेन मान की भविष्यवाणी करने के लिए मॉडल को फ़िट करने के लिए इन नए लैग्स का उपयोग करने में सक्षम होने के लिए x के लिए नैनो मान के साथ डेटाफ़्रेम के अंत में नई पंक्ति जोड़ना चाहते हैं और अंतिम स्थिति से स्थानांतरित मान। यह पांडा में कैसे किया जा सकता है? धन्यवाद!

अद्यतन: डीएफ के लिए तस्वीर है, अनबोल्ड-डीएफ, बोल्ड-वांछित पंक्ति प्राप्त करने के लिए:

enter image description here

1
Keithx 16 अप्रैल 2020, 10:31

1 उत्तर

सबसे बढ़िया उत्तर

DataFrame.append का इस्तेमाल करें कुंजी के साथ शब्दकोश के साथ x:

df = pd.DataFrame({'x':range(10)})

df1 = df.append({'x':np.nan}, ignore_index=True)
#alternative
#df1 = df.append(pd.Series([np.nan], index=['x']), ignore_index=True)

for i in range(2, 10):
    df1["lag_{}".format(i)] = df1.x.shift(i)
print (df1)
      x  lag_2  lag_3  lag_4  lag_5  lag_6  lag_7  lag_8  lag_9
0   0.0    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN
1   1.0    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN
2   2.0    0.0    NaN    NaN    NaN    NaN    NaN    NaN    NaN
3   3.0    1.0    0.0    NaN    NaN    NaN    NaN    NaN    NaN
4   4.0    2.0    1.0    0.0    NaN    NaN    NaN    NaN    NaN
5   5.0    3.0    2.0    1.0    0.0    NaN    NaN    NaN    NaN
6   6.0    4.0    3.0    2.0    1.0    0.0    NaN    NaN    NaN
7   7.0    5.0    4.0    3.0    2.0    1.0    0.0    NaN    NaN
8   8.0    6.0    5.0    4.0    3.0    2.0    1.0    0.0    NaN
9   9.0    7.0    6.0    5.0    4.0    3.0    2.0    1.0    0.0
10  NaN    8.0    7.0    6.0    5.0    4.0    3.0    2.0    1.0
1
jezrael 16 अप्रैल 2020, 07:45