我构建了一个函数,用于区分来自不同数据集的两个不同的pandas列。第一个数据集包含预测值,第二个数据集包含观察值。问题是两个数据集的行是不同的,为了区别我必须使用行的ID。
功能是:
def difference(data1,data2):
for i in range(data1.shape[0]):
e_id=data2.iloc[i,0]
p_oss =data1.iloc[int(e_id),9]
diff= p_oss - data2.iloc[i,1]
return diff
difference(df,evaluation)
其中:data1:观测值data2:预测值
功能错误:
IndexError: single positional indexer is out-of-bounds
观察到的数据集结构如下:
ID Attribute1 Attribute2 ... Prime
1 N 10 123
2 S 10 128
3 N 8 26
4 S 12 567
..
n N 15 5
预测数据集的结构如下:
ID Prime
4 566.89
1 123.03
2 127.95
3 26.01
...
预测数据集的ID发生变化,因为我使用函数(train_test_split
)来拆分列车e测试集中的原始df。
我想要这样的输出:
ID difference
1 0.03
2 0.05
3 0.1
4 0.11
...