如何使用Pandas-Python从Excel中读取某些列

时间:2015-11-11 16:28:21

标签: python numpy pandas dataframe

我正在阅读Excel工作表,我想读取某些列:第0列,因为它是行索引,第22:37列。现在我就是这样做的:

http

但我希望有更好的方法来做到这一点!我知道如果我做import pandas as pd import numpy as np file_loc = "path.xlsx" df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = 37) df= pd.concat([df[df.columns[0]], df[df.columns[22:]]], axis=1) 我可以做到这一点,但对于大型数据集,这没有意义。

我也这样做了:

parse_cols=[0, 22,..,37]

但它会读取前15列,其长度为s = pd.Series(0) s[1]=22 for i in range(2,14): s[i]=s[i-1]+1 df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = s)

3 个答案:

答案 0 :(得分:23)

您可以使用这样的列索引(字母):

import pandas as pd
import numpy as np
file_loc = "path.xlsx"
df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], parse_cols = "A,C:AA")
print(df)

Corresponding documentation

  

parse_cols int或list,默认无

     
      
  • 如果为None,则解析所有列,
  •   
  • 如果int则表示要解析的最后一列
  •   
  • 如果整数列表则表示要解析的列号列表
  •   
  • 如果字符串则表示以逗号分隔的列名和列范围列表(例如“A:E”或“A,C,E:F”)
  •   

答案 1 :(得分:12)

不推荐使用

parse_cols,而是使用usecols

即:

df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], usecols = "A,C:AA")

答案 2 :(得分:4)

“ usecols”应该会有所帮助,使用列的范围(根据excel工作表,A,B ...等) 下面是示例

  1. 选定的列
df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A,C,F")
  1. 列的范围和所选列
df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A:F,H")
  1. 多个范围
df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A:F,H,J:N")
  1. 列的范围
df = pd.read_excel(file_location,sheet_name='Sheet1', usecols="A:N")