【问题标题】:read only certain columns只读某些列
【发布时间】:2018-04-28 09:04:41
【问题描述】:

我只想将某些列从 excel 文件中读取到 pandas 数据框中。我想通过usecols 的列范围指定这个来指定这个,但是我遇到了一个错误。将列范围指定为字母的正确方法是什么(是的,我知道我可以提供列索引)?

import pandas as pd
df = pd.read_excel("test.xlsx", usecols="A:AV", header=None)

~/anaconda3/lib/python3.5/site-packages/pandas/io/excel.py 在 read_excel(io, sheetname, header, skiprows, skip_footer, index_col, 名称,parse_cols,parse_dates,date_parser,na_values,数千, convert_float,has_index_names,转换器,dtype,true_values, false_values, 引擎, 挤压, **kwds) 第207章 208 真值=真值,假值=假值,挤压=挤压, --> 209 **kwds) 210 211

~/anaconda3/lib/python3.5/site-packages/pandas/io/excel.py 在 _parse_excel(self, sheetname, header, skiprows, names, skip_footer, index_col, has_index_names, parse_cols, parse_dates, date_parser, na_values, 数千, convert_float, true_values, false_values, 详细,dtype,挤压,**kwds) 508 挤压=挤压, 第509章 --> 510 **kwds) 511 512 输出[asheetname] = parser.read()

~/anaconda3/lib/python3.5/site-packages/pandas/io/parsers.py 在 TextParser(*args, **kwds) 1910 """ 1911 kwds['engine'] = 'Python' -> 1912 返回 TextFileReader(*args, **kwds) 1913 1914

~/anaconda3/lib/python3.5/site-packages/pandas/io/parsers.py 在 init(self, f, engine, **kwds) 第762章 763 --> 764 self._make_engine(self.engine) 765 766 def 关闭(自我):

~/anaconda3/lib/python3.5/site-packages/pandas/io/parsers.py 在 _make_engine(自我,引擎) 993 ' "c", "python", 或' ' "python-fwf")'.format( 994引擎=引擎)) --> 995 self._engine = klass(self.f, **self.options) 996 997 def_failover_to_python(自我):

~/anaconda3/lib/python3.5/site-packages/pandas/io/parsers.py 在 init(self, f, **kwds) 1994 # 如果指定了,则从 self.usecols 推断列索引。 1995 自我._col_indices = 没有 -> 1996 self.columns, self.num_original_columns = self._infer_columns() 1997 1998 # 现在 self.columns 有 我们将处理的列集。

~/anaconda3/lib/python3.5/site-packages/pandas/io/parsers.py 在 _infer_columns(self) 2387 else: 2388 列 = [lrange(ncols)] -> 2389 列 = self._handle_usecols(columns, columns[0]) 2390 else: 2391 if self.usecols 为 None 或 len(names) >= num_original_columns:

~/anaconda3/lib/python3.5/site-packages/pandas/io/parsers.py 在 _handle_usecols(self, columns, usecols_key) 2422 for col in self.usecols: 2423 if isinstance(col, string_types): -> 2424 col_indices.append(usecols_key.index(col)) 2425
否则:2426 col_indices.append(col)

In [20]: pd.__version__
Out[20]: '0.20.2'

文件:test.xlsx

【问题讨论】:

    标签: python excel pandas xlsx


    【解决方案1】:

    需要升级到pandas 0.21.0 (dev discussion):

    df = pd.read_excel("test.xlsx", usecols='A:B', header=None)                              
    print (df.head())
    
              0                    1
    0  sequence  2015-02-11 00:00:00
    1        Aa                 6239
    2    AaBpL5                  NaN
    3    AaCjL5                  NaN
    4    AaDrL2                  NaN
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 2023-03-26
      • 2019-03-08
      • 1970-01-01
      • 2010-10-26
      相关资源
      最近更新 更多