我有很长时间的嵌套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)