Python 使用pandas可确定列具有特定组的最低值的次数
我想处理上面的数据帧,以找到一个Python 使用pandas可确定列具有特定组的最低值的次数,python,pandas,Python,Pandas,我想处理上面的数据帧,以找到一个源对于给定的实验具有最小RMSE值的次数。结果应该如下所示: 对于任何给定的实验,只有一个源可以具有最小的RMSE,因此任何给定列的总和为1 Experiment Source RMSE 0 Experiment 10 sat8 931.453756 1 Experiment 10 sat8 861.855506 2 Experiment 10 sat8 859.305796 3 Experim
源
对于给定的实验
具有最小RMSE
值的次数。结果应该如下所示:
对于任何给定的实验
,只有一个源
可以具有最小的RMSE,因此任何给定列的总和为1
Experiment Source RMSE
0 Experiment 10 sat8 931.453756
1 Experiment 10 sat8 861.855506
2 Experiment 10 sat8 859.305796
3 Experiment 10 sat8 655.863104
4 Experiment 10 sat8 935.915268
.. ... ... ...
571 Experiment 27 nel1 807.975352
572 Experiment 27 nel1 1146.975889
573 Experiment 27 nel1 1005.450225
574 Experiment 27 nel1 967.833854
575 Experiment 27 nel1 793.703938
我尝试使用pivot表,但不确定如何通过RMSE
列确定给定实验的源最少RMSE
每个组的最小索引(Source
):
sat8 0 0
nel1 1 1
Experiment 10 .... Experiment 27
详细信息:
df2 = (pd.get_dummies(df.set_index('Source')
.groupby('Experiment')['RMSE']
.idxmin()
).T
)
print (df2)
Experiment Experiment 10 Experiment 27
nel1 0 1
sat8 1 0
谢谢@jezrael,不知何故,这并没有对我的完整数据集起作用,将进行调查和更新。我在所有行和中都得到了1分columns@user308827-一件事,你需要第二个解决方案吗?或者先按计数?对我来说,两者都可以,尽管不太可能在多行中出现RMSE的相同最后值。@user308827-可能不是第一次理解好这个问题,现在可以测试了吗?
print (df.set_index('Source').groupby('Experiment')['RMSE'].idxmin())
Experiment
Experiment 10 sat8
Experiment 27 nel1
Name: RMSE, dtype: object