在Python中嵌套for循环 - 用数组迭代

时间:2017-07-01 20:32:33

标签: python arrays excel loops

我有很长时间的嵌套for循环,我相信我可以使用单行表示法缩短它。 但在这里,我在嵌套单行中进行数组迭代。我将非常感谢您的帮助和建议。 我的函数检查我的Excel表格中是否有空单元格,如果没有,则转到该行中的下一个单元格。如果单元格不为空,我需要将每个值添加到数组并分别创建另一个数组以在列标题中赋值。对于单元格中的每个值,我需要在头部添加相同数量的项目。 例如,

A              B      C       D
50             30     10      1
Danny, Sarah   Lenny  NaN     Mary

将返回两个数组:

prob_arr = [50, 50, 30, 1]
val_arr = ['Danny', 'Sarah', 'Lenny', 'Mary']

这是我的功能:

def concatvals(row, col, width, start, stop):
    prob_head = list(df)[start:stop]
    val_arr = []
    prob_arr = []
    j = 0
    for i in range(width):
        value_temp = df.iloc[row, col]
        if isinstance(value_temp, float) is False:
            value = [x.strip() for x in value_temp.split(',')]
            k = 0
            for k in range(len(value)):
                prob_arr.append(prob_head[i])
                k+=1
            for i in range(len(value)):
                val_arr.append(value[i])
        else:
            num_empty = j+1
            for k in range(num_empty-1):
                prob_arr.append(prob_head[i])
                k+=1
                for i in range(num_empty):
                    val_arr.append[value[i]]
            pass
        col+=1
        randparameter = random.choices(val_arr, prob_arr, k = 1)
    print(val_arr,prob_arr, randparameter)

0 个答案:

没有答案