2017-05-30 5 views
0

The Line 2:13 is the existing data format which I want it in the format as dispalyed in line 16:19Anfügen leeren Datenrahmen und Listenindex außerhalb des zulässigen Bereichs Fehler

Der Kodex ich geschrieben habe, ist

import xlrd 
import pandas as pd 

book = xlrd.open_workbook(
    "C:/Users/Vinod/Desktop/DataSet Mining/python-pandas.xlsx") 
sheet = book.sheet_by_name('Sheet1') 

df1 = pd.DataFrame() 

n = sheet.nrows 
print(n) 
n2 = sheet.ncols 
print(n2) 

for row_index in range(0, n): 
    for col_index in range(0, n2): 

     col = sheet.cell(row_index, col_index).value 
     df = pd.DataFrame() 
     l1 = [] 
     l2 = [] 
     l3 = [] 
     l4 = [] 
     l5 = [] 
     l6 = [] 
     if (col == "Entity Name:"): 
      EntityName = sheet.cell(row_index, col_index + 1).value 

     if (col == "Counterparty Name:"): 
      CounterpartyName = sheet.cell(row_index, col_index + 1).value 
     if (col == "TradeRef"): 
      row_index = row_index + 1 
      value_1 = sheet.cell(row_index, col_index).value 

      while (value_1 != ""): 

       TradeRef = sheet.cell(row_index, col_index).value 

       TradeDate = sheet.cell(row_index, col_index + 1).value 

       TradeType = sheet.cell(row_index, col_index + 2).value 
       ConfirmationMedium = sheet.cell(row_index, col_index + 3).value 

       l1.append(TradeRef) 
       l2.append(TradeDate) 
       l3.append(TradeType) 
       l4.append(ConfirmationMedium) 

       row_index = row_index + 1 
       if (row_index >= n): 
        value_1 = "" 
        col_index = 4 


       else: 
        value_1 = sheet.cell(row_index, col_index).value 
        print(value_1) 

      df['TradeRef'] = l1 
      df['TradeDate'] = l2 
      df['TradeType'] = l3 
      df['ConfirmationMedium'] = l4 
      df['EntityName'] = EntityName 
      df['CoutrepartyName'] = CounterpartyName 
      print(df) 
      print(row_index) 
      print(col_index) 
      df1.append(df) 
print(df1) 
+0

Können Sie einen kurzen Kommentar über das, was Sie versuchen, was Sie zu tun und was denke, das Problem ist? – memebrain

+0

Vielen Dank für Ihre Antwort.Wenn Sie auf den Hyperlink über dem Code klicken, erhalten Sie eine Bildschirmaufnahme des vorhandenen Datenformats und auch gewünschte Datenformat.Die ersten 12 Zeilen sind die Eingabedaten und der Rest sind Ausgabedatenformat. –

+0

Ich habe es gelöst. Hier ist der Code. –

Antwort

0
I got it resolved @Azat 
import xlrd 
import pandas as pd 
book = xlrd.open_workbook("C:/Users/Vinod/Desktop/DataSet Mining/python-pandas.xlsx") 
sheet = book.sheet_by_name('Sheet1') 
df1=pd.DataFrame() 
n=sheet.nrows 
n2=sheet.ncols 
for row_index in range(0,n): 
    for col_index in range(0,n2): 

     if(row_index)<n: 
      col=sheet.cell(row_index,col_index).value 
      df=pd.DataFrame() 
      l1=[] 
      l2=[] 
      l3=[] 
      l4=[] 
      l5=[] 
      l6=[] 
      if(col=="Entity Name:"): 

       EntityName=sheet.cell(row_index,col_index+1).value 


      if(col=="Counterparty Name:"): 
       CounterpartyName=sheet.cell(row_index,col_index+1).value 
      if(col=="TradeRef"): 
       row_index=row_index+1 
       value_1=sheet.cell(row_index,col_index).value 

       while(value_1!=""): 





        TradeRef=sheet.cell(row_index,col_index).value 

        TradeDate=sheet.cell(row_index,col_index+1).value 


        TradeType=sheet.cell(row_index,col_index+2).value 
        ConfirmationMedium=sheet.cell(row_index,col_index+3).value 

        l1.append(TradeRef) 
        l2.append(TradeDate) 
        l3.append(TradeType) 
        l4.append(ConfirmationMedium) 

        row_index=row_index+1 
        if(row_index>=n): 

         value_1="" 
         col_index=4 

        else: 
        value_1=sheet.cell(row_index,col_index).value 

       df['TradeRef']=l1 
       df['TradeDate']=l2 
       df['TradeType']=l3 
       df['ConfirmationMedium']=l4 
       df['EntityName']=EntityName 
       df['CoutrepartyName']=CounterpartyName 
       df1=df1.append(df) 
print(df1) 
Verwandte Themen