2017-06-06 155 views
1

我是熊猫的初学者。我想从excel文件中提取一列到pandas的python数组中。我想要在整个列中运行一个循环。我想在column.Here打印第1个数据是我的代码:IndexError:索引超出熊猫的范围

import pandas as pd 
xl_workbook = pd.ExcelFile("Summary.xlsx") # Load the excel workbook 
df = xl_workbook.parse("Sheet1") # Parse the sheet into a dataframe 
df['transactionqtr'] = pd.to_datetime(df['transactionqtr'],errors ='coerce') 
df['commencementdate'] = pd.to_datetime(df['commencementdate'],errors ='coerce') 
df=df.dropna() 
df['transactionqtr'] = df['transactionqtr'].apply(lambdax:x.date().strftime('%m%d%y')) 
df['commencementdate'] = df['commencementdate'].apply(lambda x:x.date().strftime('%m%d%y')) 
arr1 = df['transactionqtr'][1][1] 
arr2 = df['commencementdate'][1][1] 
print(arr1) 
print(arr2) 

但它显示IndexError:索引越界在这条线:

arr1 = df['transactionqtr'][1][1] 
arr2 = df['commencementdate'][1][1] 

我应该怎样解决这个问题?请也指导我更好的代码。

+0

您可以包括整个错误消息? – acdr

回答

0

我认为你需要dt.strftimetolistvalues

#if need list 
arr1 = df['transactionqtr'].dt.strftime('%m%d%y').tolist() 
arr2 = df['commencementdate'].dt.strftime('%m%d%y').tolist() 

#if need numpy array 
arr1 = df['transactionqtr'].dt.strftime('%m%d%y').values 
arr2 = df['commencementdate'].dt.strftime('%m%d%y').values 

而对于第一个值使用索引与[]

a = arr1[0] 
+0

AttributeError:'str'对象没有属性'tolist' 它显示此错误。 –

+0

'df = df.dropna()'后的'print(df.head())'是什么? – jezrael

+0

我没有使用这个。 –