मैं अब से पिछले 7 दिन की तारीख को विभाजित करना चाहता हूं।

यह मेरा कोड है।

df = pdr.get_data_yahoo('ibm',
                          start=datetime.datetime(y-5, m, d),
                          end=pd.datetime.now().date())

split_date = datetime.datetime(y, m, d-7)
train = df.loc[:split_date, ['Close']]
test = df.loc[split_date:, ['Close']]

print(train)
print("################################")
print(test)

यह इस तरह परिणाम दिखाता है।

............
2019-01-25  133.970001
2019-01-28  134.270004
2019-01-29  134.330002
2019-01-30  134.380005
2019-01-31  134.419998
2019-02-01  134.100006
##################################################################
                 Close
Date                  
2019-02-01  134.100006
2019-02-04  135.190002
2019-02-05  135.550003
2019-02-06  136.320007
2019-02-07  133.000000

print(test) को पिछले 7 दिन का डेटा दिखाना चाहिए, लेकिन यह केवल 5 दिन ही क्यों दिखाता है, और 2019-02-01 134.100006 ट्रेन में क्यों दिखाते हैं और डेटा विभाजन समान नहीं होना चाहिए।

2
user572575 7 फरवरी 2019, 22:03

1 उत्तर

सबसे बढ़िया उत्तर
  • ऐसा लगता है कि आपके डेटासेट में पिछले ७ दिनों से केवल ५ पंक्तियाँ (सप्ताह के दिन) थीं, इसलिए आपका परीक्षण सेट केवल ५ पंक्तियाँ दिखाता है।

  • आपकी ट्रेन और परीक्षण सेट दोनों में '2019-02-01' को शामिल करने का कारण यह है कि df.iloc[start_ind:end_ind], start_ind से end_ind दोनों शामिल तक की पंक्तियों को पुनः प्राप्त करता है। (इसका उल्लेख डॉक्स में चेतावनी के रूप में किया गया है। आप यहां।) सही ढंग से विभाजित करने के लिए, आप अपने ट्रेन परीक्षण में 8 दिन पहले तक की सभी तिथियों को शामिल कर सकते हैं और अपने परीक्षण सेट में पिछले 7 दिनों को शामिल कर सकते हैं।

1
panktijk 7 फरवरी 2019, 22:35