【发布时间】:2021-12-05 06:53:19
【问题描述】:
我正在尝试运行一个循环来从 A 列中每个元素的一组固定值 [125 150 175 200] 中找到一个 excel 列(比如说 A 列)之间的差异。当我找到差异时,然后我想找到差异的最小值,并且需要找到这些值的索引。
代码在这里:
Ref = pd.ExcelFile ('Current parametric sweep_reference.xlsx')
print(Ref.sheet_names)
for Sheet in Ref.sheet_names:
Ref = pd.read_excel("Current parametric sweep_reference.xlsx",sheet_name=Sheet)
tempdiff = [125, 150, 175, 200]
numbdiff = len(tempdiff)
values = np.zeros(numbdiff)
Tchipavg=list(Ref["Temperature (degC), Tchipcenter"])
Time =list(Ref["Time (s) (s)"])
index = list(Tchipavg).index(np.max(Tchipavg))
Time = Time[:index]
for j in range(0,numbdiff):
diff =np.array([x-tempdiff[j] for x in Tchipavg[:index-1]])
values[j] = min(abs(diff))
min_index, min_value = min(enumerate(diff), key = operator.itemgetter(1))
print(min_index, min_value)
print(values)
当我打印值时,它确实给出了差异的最小值,但我正在努力寻找我必须用来在另一列中查找值的索引,比如说 B 列。 你能指出这里的错误是什么吗?
数据示例:
df = pd.DataFrame([[0, 95.68 ], [1, 137.04], [2, 149.41], [3 , 158.25 ], [4, 165.28 ], [5 , 127.31 ], [6, 119.80 ], columns=['Time', 'Temp'])
输出应该给出每个 delta T (tempdiff) 情况下最小差异的索引,例如,在@Jezrael 的回答中,数组中有 4 个值用于 4 tempdiff [125、150、175、200]。输出给出了这 4 个中的最小值。相反,我只需要找到相同 tempdiff 的所有数组的最小值。例如,它会是这样的:
values = [2.31 0.59 9.72 34.72]
indices = [5 2 4 4]
【问题讨论】:
-
超级,样本数据的预期输出如何?
-
我添加了一些值
标签: python excel pandas numpy for-loop