0

我有一些代码可以通过 PyWorkbooks 很好地与 excel spredsheets 配合使用,但我想在 pandas 上做同样的工作。这是原始代码:

from PyWorkbooks.ExWorkbook import ExWorkbook
B = ExWorkbook()
B.change_workbook("Somelist.xlsx")
B.change_sheet("Tab1")

#column 6 = 1 if row customer likes cucumber, 0 otherwise
#column 7 = 1 if row customer likes carrot, 0 otherwise
#column 8 = 1 if row customer likes spinach, 0 otherwise
string1 = "Likes %s."
string2 = "Likes %s and %s."
string3 = "Likes %s, %s, and %s."

def findveg(row):
    veggies = []
    if B[row,6] == 1:
        veggies.append('cucumber')
    if B[row,7] == 1:
        veggies.append('carrot')
    if B[row,8] == 1:
        veggies.append('spinach')
    return tuple(veggies)

for i in range(1,100):
    if len(veggies) == 1:
        veggies= findveg(i)
        B[i,9] = string1 % veggies
    if len(veggies) == 2:
        veggies= findveg(i)
        B[i,9] = string2 % veggies
    if len(veggies) == 3:
        veggies= findveg(i)
        B[i,9] = string3 % veggies
4

1 回答 1

1
string1 = "Likes %s."
string2 = "Likes %s and %s."
string3 = "Likes %s, %s, and %s."

def findveg(row):
    veggies = []
    if DF['cucumber_lover'][row] == 1:
        veggies.append('cucumber')
    if DF['carrot_lover'][row] == 1:
        veggies.append('carrot')
    if DF['spinach_lover'][row] == 1:
        veggies.append('spinach')
    return tuple(veggies)

flist['msg'] = ''
for row in DF.index:
        veggies = findfac(row)
        if len(veggies) == 1:
            findveg['msg'][row] = string1 % veggies
        if len(veggies) == 2:
            findveg['msg'][row] = string2 % veggies
        if len(veggies) == 3:
            findveg['msg'][row] = string3 % veggies
于 2012-10-04T05:07:57.997 回答