2016-03-08 88 views
0

我正在尝试使用Pandas来读取excel文件。使用熊猫处理Excel文件

  1. 我想只有通过柱4

  2. 读取列2我想跳过读取第9行。

  3. 即使有,skiprows=8, parse_col=["B:D"],存储在df中的数据看起来与传入的excel文件相同,并且不排除前9行或排除期望的列。

我的语法有什么问题,为什么我的输入的excel文件中减去9行和几列的数据库结构不存储在df中?

我的接收下面的数据:

Null,Null,Null,Null,Null,Null,Null,Null,Null  
Null,Null,Null,Null,Null,Null,Null,Null,Null  
Null,Null,Null,Null,Null,Null,Null,Null,Null  
Null,Null,Null,Null,Null,Null,Null,Null,Null     
Null,Null,Null,Null,Null,Null,Null,Null,Null         
Null,Null,Null,Null,Null,Null,Null,Null,Null      
Null,Null,Null,Null,Null,Null,Null,Null,Null         
Null,Null,Null,Null,String1,String2,Null,Null,Null 
Null,Phase to Phase Voltage,A - B,210.0,C - A,211.0,B - C,212.0 
Null,Circuit/Breaker,Number,Internal Meter Amps,External Meter Amps,Measured Difference,% Difference,Location Identifier,Total Location Amperage,Comments 
Null,Main Phase A,94.1,96.,2.8,3%,Null,Null,Null    
Null,Main Phase B,90.1,92.6,2.5,3%,Null,Null,Null   
Null,Main Phase C,91.9,92.1,0.2,0%,Null,Null,Null  
Null,Neutral,0.0,0.4,0.4,100%,Null,Null,Null    
Null,Ground 0.0,0.1,0.1,100%,Null,Null,Null   
Null,1,10.6,10.2,-0.4,-4%,Null,Null,Null    
Null,2,10.6,10.3,-0.3,-3%,Null,Null,Null     
.... 

我的代码如下:

import pandas as pd 

df = pd.read_excel('filelocation.xlsx', sheetname=['pnl1 Data ','pnl2 Data','pnl3 Data','pnl4 Data'], skiprows=8, parse_col=["B:D"], keep_default_na='FALSE', na_values=['NULL']) 
+0

从来没有听说过这个问题。你有没有试过只读一张('表名')而不是几张?如果您尝试阅读多张表,'read_excel'将返回一个'DataFrames'字典,其中代表工作表的键。我认为只用一张纸重现问题就可以找出问题所在。 – Romain

+0

当试图解析一张纸时,我遇到了同样的问题。我的新行看起来像这样:'df = pd.read_excel('C:/Users/Jerry/Documents/panoptics/panopticsMeeting2.28.16/FDC 1301 Data Collection(upTo48BreakerDevice) - original.xlsx',sheetname = ['pnl1 Data' ],skiprows = 8,parse_col = [“B:D”],keep_default_na ='FALSE',na_values = ['NULL'])' – pHorseSpec

回答

1

你拼错parse_cols参数名称,使用parse_cols代替parse_col。除了你要么指定一个像"B:D"(或"B,C,D")的字符串或类似['B','C','D']

列表试试这个:

import pandas as pd 

df = pd.read_excel('filelocation.xlsx', 
     sheetname=['pnl1 Data ','pnl2 Data','pnl3 Data','pnl4 Data'], 
     skiprows=8, parse_cols="B:D", keep_default_na='FALSE', na_values=['NULL']) 

PS还要检查这个SHEET_NAME:'pnl1 Data '的尾随空间

+0

表名实际上有一个尾部空格, 。此外,当我将'parse_col'更改为'parse_cols'时,出现以下错误:' 文件“C:\ Users \ Jerry \ Anaconda2 \ lib \ site-packages \ pandas \ io \ parsers.py”,第1817行, in _next_line raise StopIteration StopIteration' – pHorseSpec

+0

对不起。 NVM。当我插入你的代码时,它工作。我的代码中的一些语法必须是错误的。 – pHorseSpec