Pandas - ValueError: протоколы использования не соответствуют столбцам, ожидаются столбцы, но не найден код ошибки - PullRequest
0 голосов
/ 07 января 2020

У меня есть этот код, где я объединяю 12 CSV-файлов и выбираю нужные столбцы из объединенного файла, а затем снова сохраняю его, моя проблема в том, что когда у меня есть несколько столбцов, все работает нормально, но когда я начинаю выбирать больше столбцов Я получаю следующую ошибку, я буду загружать код до и после вместе с ошибкой.

Этот код отлично работает

import pandas as pd
import glob


#combine all csv files into one csv file

files = glob.glob(r'/Users/AliOsama/Desktop/Project/database/*.csv')


combined_csv = pd.concat([pd.read_csv(file, usecols=['Power_kW','ReactivePower_kVAr','WindSpeed_mps','YawState','Pitch_Deg','RotorSpeed_rpm','AmbTemp_DegC','WindSpeed1','WindSpeed2','WindSpeed3','SubIprPrivPwrFactor', 'SubPtchPosition1', 'SubPtchPosition2', 'SubPtchPosition3'']) for file in files])

combined_csv.fillna(combined_csv.mean(), inplace=True)



combined_csv.to_csv(r'/Users/AliOsama/Desktop/Project/database/combineddd.csv', index=False)

Этот код дает мне ошибку:

import pandas as pd
import glob


#combine all csv files into one csv file

files = glob.glob(r'/Users/AliOsama/Desktop/Project/database/*.csv')


combined_csv = pd.concat([pd.read_csv(file, usecols=['Power_kW','ReactivePower_kVAr','WindSpeed_mps','YawState','Pitch_Deg','RotorSpeed_rpm','AmbTemp_DegC','WindSpeed1','WindSpeed2','WindSpeed3','SubIprPrivPwrFactor', 'SubPtchPosition1', 'SubPtchPosition2', 'SubPtchPosition3', 'Volts1_Vrms', 'Volts2_Vrms', 'Volts3_Vrms']) for file in files])

combined_csv.fillna(combined_csv.mean(), inplace=True)



combined_csv.to_csv(r'/Users/AliOsama/Desktop/Project/database/combineddd.csv', index=False)

Ошибка:

ValueError                                Traceback (most recent call last)
<ipython-input-7-143f65dcf76b> in <module>
      8 
      9 
---> 10 combined_csv = pd.concat([pd.read_csv(file,dtype='unicode' , usecols=['Power_kW','ReactivePower_kVAr','WindSpeed_mps','YawState','Pitch_Deg','RotorSpeed_rpm','AmbTemp_DegC','WindSpeed1','WindSpeed2','WindSpeed3','SubIprPrivPwrFactor', 'SubPtchPosition1', 'SubPtchPosition2', 'SubPtchPosition3', 'Volts1_Vrms', 'Volts2_Vrms', 'Volts3_Vrms']) for file in files])
     11 
     12 combined_csv.fillna(combined_csv.mean(), inplace=True)

<ipython-input-7-143f65dcf76b> in <listcomp>(.0)
      8 
      9 
---> 10 combined_csv = pd.concat([pd.read_csv(file,dtype='unicode' , usecols=['Power_kW','ReactivePower_kVAr','WindSpeed_mps','YawState','Pitch_Deg','RotorSpeed_rpm','AmbTemp_DegC','WindSpeed1','WindSpeed2','WindSpeed3','SubIprPrivPwrFactor', 'SubPtchPosition1', 'SubPtchPosition2', 'SubPtchPosition3', 'Volts1_Vrms', 'Volts2_Vrms', 'Volts3_Vrms']) for file in files])
     11 
     12 combined_csv.fillna(combined_csv.mean(), inplace=True)

~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
    676                     skip_blank_lines=skip_blank_lines)
    677 
--> 678         return _read(filepath_or_buffer, kwds)
    679 
    680     parser_f.__name__ = name

~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
    438 
    439     # Create the parser.
--> 440     parser = TextFileReader(filepath_or_buffer, **kwds)
    441 
    442     if chunksize or iterator:

~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
    785             self.options['has_index_names'] = kwds['has_index_names']
    786 
--> 787         self._make_engine(self.engine)
    788 
    789     def close(self):

~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py in _make_engine(self, engine)
   1012     def _make_engine(self, engine='c'):
   1013         if engine == 'c':
-> 1014             self._engine = CParserWrapper(self.f, **self.options)
   1015         else:
   1016             if engine == 'python':

~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
   1747             if (self.usecols_dtype == 'string' and
   1748                     not set(usecols).issubset(self.orig_names)):
-> 1749                 _validate_usecols_names(usecols, self.orig_names)
   1750 
   1751             if len(self.names) > len(usecols):

~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py in _validate_usecols_names(usecols, names)
   1132         raise ValueError(
   1133             "Usecols do not match columns, "
-> 1134             "columns expected but not found: {missing}".format(missing=missing)
   1135         )
   1136 

ValueError: Usecols do not match columns, columns expected but not found: ['Volts1_Vrms', 'Volts3_Vrms', 'Volts2_Vrms']

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...