pandas替代字符串创建循环

时间:2012-10-04 04:10:12

标签: python string for-loop pandas

我有一些代码可以通过Workbooks与excel电子表格很好地协作,但我想在大熊猫上做同样的工作。这是原始代码:

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

1 个答案:

答案 0 :(得分: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