0

I have some code that works well with excel spredsheets via PyWorkbooks, but I would like to do the same job on pandas. This is the original code:

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
2
  • can you explain what you are trying to achieve? Commented Oct 4, 2012 at 4:50
  • @root, I solved it myself, hope my aim is clear below. I need to make gramatically correct phrases for each row according to what veggies a person likes. ;7) Commented Oct 4, 2012 at 5:11

1 Answer 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
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.