मेरे पास निम्न कोड है और मैं एक नए कॉलम में True असाइन करने का प्रयास कर रहा हूं जहां वास्तविक तिथि कॉलम 'डी' (बनाई गई तिथि) और False की तारीख के बराबर है।

मैं पाइथन के लिए काफी नया हूं इसलिए मैं समझना चाहता हूं कि मैंने क्या गलत किया है:

def GetData():
    myList = GetFileList(TodaysDate,5)
    NewDataFrame  = pd.DataFrame()
    for x in myList:
        #The date of the actuals data is the day BEFORE it was created  
        ActualDate = getDate(x) - timedelta(days=1)

        myTempData = pd.read_csv(WSIWeatherDir + "\\" + x, parse_dates = [" date"], date_parser = DateTimeParser)

        myTempData = myTempData.replace(-99,np.nan)
        myTempData = myTempData.loc[myTempData['name'].isin(NL_WeatherStations)]
        myTempData['D'] = myTempData[' date'].dt.date

        #MyData = myTempData.sort([' date'], ascending=True)
        #print MyData

        #Select indices of the weather file where the column " date" is equal to the actual date we are looking for
        MyActualIndex = myTempData['D'] == ActualDate
        MyActualData = myTempData[MyActualIndex]


        MyExpectedIndex = myTempData.index.difference(MyActualData.index)
        MyExpectedData =  myTempData.loc[MyExpectedIndex] 

        myTempData ['Actuals'] = [True] * len(MyActualData.index)
        myTempData ['Actuals'] = [False] * len(MyExpectedData.index)

        NewDataFrame = pd.concat([NewDataFrame,myTempData])
    return NewDataFrame
print GetData()

त्रुटि

runfile('C:/Users//Desktop/NLG_TAC_Calculation/TAC_2.py', wdir='C:/Users//Desktop/NLG_TAC_Calculation')
Traceback (most recent call last):

  File "<ipython-input-4-c9c151bca95a>", line 1, in <module>
    runfile('C:/Users//Desktop/NLG_TAC_Calculation/TAC_2.py', wdir='C:/Users//Desktop/NLG_TAC_Calculation')

  File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile
    execfile(filename, namespace)

  File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)

  File "C:/Users//Desktop/NLG_TAC_Calculation/TAC_2.py", line 117, in <module>
    print GetData()

  File "C:/Users//Desktop/NLG_TAC_Calculation/TAC_2.py", line 108, in GetData
    myTempData ['Actuals'] = [True] * len(MyActualData.index)

  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2127, in __setitem__
    self._set_item(key, value)

  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2204, in _set_item
    value = self._sanitize_column(key, value)

  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2362, in _sanitize_column
    value = _sanitize_index(value, self.index, copy=False)

  File "C:\Python27\lib\site-packages\pandas\core\series.py", line 2579, in _sanitize_index
    raise ValueError('Length of values does not match length of '

ValueError: Length of values does not match length of index
2
Alexander UpUp 24 फरवरी 2016, 13:17
आपकी समस्या का पता लगाने में हमारी सहायता करने के लिए कृपया स्टैक ट्रेस सहित पूरी त्रुटि पोस्ट करें।
 – 
deceze
24 फरवरी 2016, 13:22

1 उत्तर

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

मेरा सबसे अच्छा अनुमान इस भाग में निर्भर करता है:

myTempData ['Actuals'] = [True] * len(MyActualData.index)
myTempData ['Actuals'] = [False] * len(MyExpectedData.index)

यह पहले कहता है कि myTempData['Actuals'] आकार का एक स्तंभ है len(MyActualData.index) जिसमें केवल True मान हैं। इसके बाद, यह सब कुछ len(MyExpectedData.index) (जो मैं अलग होने की उम्मीद करता हूं) के आकार के दूसरे कॉलम से बदल देता है जिसमें False मान होते हैं।

आप पहले True मानों का एक कॉलम बना सकते हैं और उसके बाद ही, False वाले को बदल सकते हैं:

myTempData['Actuals'] = True
myTempData.iloc[MyExpectedIndex] = False
8
Matheus Portela 24 फरवरी 2016, 13:27