pass openpyxl Daten pandas

Bin ich-Spaltung "vollständiger name" Felder "Vorname", Vorname" und "Nachname" Felder von Daten aus einer excel-Datei. Ich konnte nicht herausfinden, wie zu tun, dass in pandas, so wandte ich mich openpyxl. Ich habe die Variablen aufteilen, wie ich mir gewünscht hatte. Aber, da das hinzufügen von Spalten zu openpyxl für die neuen Felder ist nicht einfach, ich dachte, ich würde übergeben Sie die Werte an pandas.

Ich bin der Erzeugung der dataframe, die ich brauche, wenn ich den code ausführen, aber sobald ich den df zu ExcelWriter, nur die Letzte Zeile ist Hinzugefügt, um die Excel-Datei. Die Daten in den richtigen stellen, obwohl.

Hier der code:

for cellObj in range(2, sheet.max_row+1):
    #print cellObj
    id = sheet['A' + str(cellObj)].value
    fullname = sheet['B' + str(cellObj)].value.strip()
    namelist = fullname.split(' ')  
    for i in namelist:
        firstname = namelist[0]
        if len(namelist) == 2:
            lastname = namelist[1]
            middlename = ''
        elif len(namelist) == 3:
            middlename = namelist[1]
            lastname = namelist[2]
        elif len(namelist) == 4:
            middlename = namelist[1]
            lastname = namelist[2] + " " + namelist[3]
        if (namelist[1] == 'Del') | (namelist[1] == 'El') | (namelist[1] == 'Van'):
            middlename = ''
            lastname = namelist[1] + " " + namelist[2]
    df = pd.DataFrame({'personID':id,'lastName':lastname,'firstName':firstname,'middleName':middlename}, index=[id])

    writer = pd.ExcelWriter('output.xlsx')
    df.to_excel(writer,'Sheet1', columns=['ID','lastName','firstName','middleName'])
    writer.save()

Irgendwelche Ideen?

Dank

InformationsquelleAutor mattrweaver | 2016-04-15
Schreibe einen Kommentar