Python Pandas-ValueError:Usecols与列不匹配,应为列,但未找到列错误代码

Python Pandas-ValueError:Usecols与列不匹配,应为列,但未找到列错误代码,python,pandas,csv,dataframe,jupyter-notebook,Python,Pandas,Csv,Dataframe,Jupyter Notebook,我有这段代码,我连接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')

我有这段代码,我连接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']
ValueError回溯(最近一次调用)
在里面
8.
9
--->10组合功率=pd.concat([pd.read\u csv(文件,dtype='unicode',usecols=['Power'u kW','ReactivePower'u kVAr','WindSpeed'mps','YawState','Pitch'Deg','RotorSpeed'rpm','AmbTemp'DegC','WindSpeed1','WindSpeed3','subiprprivprfactor','subpcposition1','subpcposition2','subpcposition3','s1 voltu ms','s2\vru'vru']对于文件中的文件])
11
12组合的csv.fillna(组合的csv.mean(),inplace=True)
英寸(.0)
8.
9
--->10组合功率=pd.concat([pd.read\u csv(文件,dtype='unicode',usecols=['Power'u kW','ReactivePower'u kVAr','WindSpeed'mps','YawState','Pitch'Deg','RotorSpeed'rpm','AmbTemp'DegC','WindSpeed1','WindSpeed3','subiprprivprfactor','subpcposition1','subpcposition2','subpcposition3','s1 voltu ms','s2\vru'vru']对于文件中的文件])
11
12组合的csv.fillna(组合的csv.mean(),inplace=True)
解析器中的~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py\u f(文件路径或缓冲区、sep、分隔符、标题、名称、索引列、usecols、squeeze、prefix、mangle\u dupe\u cols、数据类型、引擎、转换器、true\u值、false\u值、skipinitialspace、skiprows、nrows、na\u值、keep\u默认值、na\u筛选器、冗余、跳过空白行、解析日期、推断日期时间格式、keep\u日期列、日期解析器、dayfirst、迭代器、chunksize、压缩、千、十进制、行终止符、引号、引号、转义符、注释、编码、方言、元组、错误行、警告行、跳板、双引号、删除空格、低内存、内存映射、浮点精度)
676跳过空白行=跳过空白行)
677
-->678返回读取(文件路径或缓冲区,kwds)
679
680解析器名称
读取中的~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py(文件路径或缓冲区,kwds)
438
439#创建解析器。
-->440 parser=TextFileReader(文件路径或缓冲区,**kwds)
441
442如果chunksize或迭代器:
~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py在uuuu init_uuu中(self,f,engine,**kwds)
785 self.options['has_index_name']=kwds['has_index_name']
786
-->787自动制造发动机(自动发动机)
788
789 def关闭(自动):
生成引擎中的~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py(self,engine)
1012 def制造发动机(自,发动机class='c'):
1013如果发动机=‘c’:
->1014 self.\u engine=CParserWrapper(self.f,**self.options)
1015其他:
1016如果引擎==“python”:
~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py in uuuuuu init_uuuu(self,src,**kwds)
1747如果(self.usecols_dtype=='string'和
1748未设置(usecols).issubset(self.orig_名称):
->1749 _validate_usecols_名称(usecols,self.orig_名称)
1750
1751如果len(self.names)>len(usecols):
~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py in\u validate\u usecols\u names(usecols,names)
1132上升值错误(
1133“Usecols不匹配列,”
->1134“应为列,但未找到:{missing}”。格式(missing=missing)
1135         )
1136
ValueError:Usecols与列不匹配,应为列,但未找到列:['Volts1\u Vrms','Volts3\u Vrms','Volts2\u Vrms']

谢谢。

欢迎来到stack overflow!这个错误似乎在告诉您,这3列不存在于您试图连接的DF中。您是否验证了它们存在于两个数据帧中?@G.Anderson我按照描述代码运行,以了解12个csv文件中的所有列,并且它们都具有相同的列。@G.Anderson因此我发现在12个csv文件中,有2个文件具有该列,但它们是空的,我仍然需要连接其余的,但是我不知道如何在这两个文件中没有这两列的情况下连接所有内容。您可以使用
try:except:
来连接有数据的文件,但至于如何处理不包含数据的文件,这将取决于您试图达到的最终目标需要什么accomplish@G.Anderson非常感谢你,现在工作。