我有以下问题:在输入文件“pannelloBschema1_0.t19.glo
”上执行一些操作后(“t19.glo”扩展名只是一个.txt文件)我得到变量“min_diff
”,其值为0.7222780000000029。我想知道如何得到位置(行),其中"min_diff"
是。然后,我需要取放置在同一行中的值,但在其标题为“disp”的列中。我堆叠在这里。我尝试使用index.get_indexer([min_diff])
,但它返回:array([-1],dtype= int 64),所以这不是方法。有人能帮我吗?
您可以在这里下载“pannelloBschema1_0.t19.glo”:https://github.com/giadabart/sharedfiles)
下面是我的代码:
import numpy as np
import pandas as pd
specificload_reading = np.loadtxt('pannelloBschema1_0.t19.glo', skiprows = 2)
lastline = (specificload_reading[-1][1] + specificload_reading[-1][2])/1000
lastline_reduced = 0.7 * lastline
laoddevelopment = [(el[2]+el[1])/1000 for el in specificload_reading]
dispdevelopment = [-el*1000 for el in specificload_reading[:,0]]
data = {
"disp": dispdevelopment,
"load": laoddevelopment,
"70%load": lastline_reduced,
"load_diff": laoddevelopment-lastline_reduced
}
df = pd.DataFrame(data)
df['abs_loaddiff']= (df['load'] - df['70%load']).abs()
somerows = df.iloc[0:3]
print(somerows)
min_diff = df['abs_loaddiff'].min()
print(min_diff) #>>> 0.7222780000000029
# index.get_indexer([item], method=…)
index.get_indexer([min_diff])
1条答案
按热度按时间hmmo2u0o1#
Ciao Giada,欢迎来到SO。如果你能看一下[问],然后尝试制作一个[mcve],那就太好了。如果你能分享一个小样本的数据,而不是一个链接,那就太好了。
无论如何,我建议你采取以下方法。
加载数据
首先直接用pandas读取数据
看起来像是
pandas操作而不是list/numpy
现在可以只考虑刚刚计算的最后4列
看起来像是
获取最小值索引
在pandas中,可以通过
返回
69
。您最终可以使用其返回