【发布时间】:2019-03-28 13:36:41
【问题描述】:
我正在输入包含多列数据的多个电子表格。对于每个电子表格,找到每列的最大值。然后,对于列中的每个元素,该元素除以该列的最大值。对于列中的每个元素,输出应该是一个值(介于 0 和 1 之间),按升序排列。这将附加到应作为列添加到源电子表格的列表中。
目前,据我了解,嵌套循环除了最后一步之外,都正常执行。每一列都添加到电子表格中,除了源电子表格的最后一列的值,而不是与每一列相关的值。
我尝试更改缩进以将代码级别与不同部分相关联(因为我认为这是问题所在)并尝试在数据框中移动附加列,但无济于事。
for i in distlist:
#listname = i[4:] + '_norm'
df2 = pd.read_excel(i,header=0,index_col=None, skip_blank_lines=True)
df3 = df2.dropna(axis=0, how='any')
cols = []
for column in df3:
cols.append(column)
for x in cols:
listname = x + ' norm'
maxval = df3[x].max()
print(maxval)
mylist = []
for j in df3[x]:
findNL = (j/maxval)
mylist.append(findNL)
df3[listname] = mylist
saveloc = 'E:/test/'
filename = i[:-18] + '_Normalised.xlsx'
df3.to_excel(saveloc+filename, index=False)
新列将添加到输出数据框中,其中包含与源电子表格中的字段标题相关的定制标题,并根据 (listname) 重命名。这些新列中的每一列中的数据都是相同的,并且与电子表格中的最后一列相关。对我来说,它似乎每次都会覆盖这些值(好像循环遍历整个电子表格,而不是为每一列输出),并将其添加到电子表格中。
任何帮助将不胜感激。我认为这很简单,但我还没有弄清楚是什么......
【问题讨论】:
标签: python-3.x pandas for-loop nested-loops