मेरे पास निम्न कोड है और मैं एक नए कॉलम में 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
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
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।