IndexError:pandas中的索引超出范围

时间:2017-06-06 10:48:06

标签: python excel pandas

我是熊猫的初学者。我想从excel文件中提取一个列到pandas的python数组。我想在整个列中运行一个循环。我想在该列中打印第一个数据。这是我的代码:

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]

我该如何解决这个问题?还请指导我提供更好的代码。

1 个答案:

答案 0 :(得分:0)

我认为您dt.strftimetolist需要values

#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]