我有两个列表,一个空列表(newgr),另一个具有从excel工作表(gr)导入的值。我正在尝试在for循环中遍历列表,以便可以比较和更改某些值,并将已与原始值一起更改的gr中的值附加到newgr中。我尝试了这种格式,但是没有用。
df = pd.read_excel("Well_Logs.xlsx", "SB16", na_values = [-999])
newgr = []
gr = df['GR'].values.tolist()
grclean = int(input('enter your clean value >')) #20 for example
grclay = int(input('enter your clay value >')) #60 for example
for i in gr:
if i < grclean:
i==grclean
newgr.append(i)
elif i > grclay:
i==grclay
newgr.append(i)
else:
newgr.append(i)
print(newgr)
我希望列表具有一些新的值,而不是将gr的相同值附加到newgr。
答案 0 :(得分:2)
您应该使用
i = grclean
将grclean
分配给i
代替
i == grclean
这是一个比较。
您还可以将整个循环编写为整洁的列表理解:
newgr = [max(grclean, min(grclay, i)) for i in gr]
答案 1 :(得分:0)
df = pd.read_excel("Well_Logs.xlsx", "SB16", na_values = [-999])
newgr = []
gr = df['GR'].values.tolist()
grclean = int(input('enter your clean value >')) #20 for example
grclay = int(input('enter your clay value >')) #60 for example
for i in gr:
if i < grclean:
newgr.append(grclean)
elif i > grclay:
newgr.append(grclay)
else:
newgr.append(i)
print(newgr)