Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pandas可确定列具有特定组的最低值的次数_Python_Pandas - Fatal编程技术网

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