【发布时间】:2020-07-22 05:04:16
【问题描述】:
几个月前我刚刚接触了python,并且是这个论坛的新手。感谢是否有人可以提供帮助。 我想找到最接近中位数的值。
- 为了获得每个单元的中位数,我使用 groupby 和 median()。
- 然后获取与原始数据帧的差异
- 使用 abs() 和 idxmin() 获得最小的增量。 基本上我最终得到了另一个数据框,它的索引值最接近中位数。如何继续使用索引来获取实际值?
Unit Test1 Test2 Test3
Unit1 0.254279388 0.010388754 0.820704593
Unit1 0.957139807 0.207681463 0.738428693
Unit1 0.043462803 0.154220478 0.606568744
Unit2 0.044308884 0.134817932 0.697317637
Unit2 0.244895686 0.909262442 0.153881824
Unit3 0.368147792 0.735655648 0.200679595
Unit3 0.30457518 0.929519313 0.823938759
Unit3 0.537633836 0.661168043 0.736937724
Unit3 0.410137495 0.567494043 0.68300754
Unit3 0.525483757 0.556830631 0.988314575
到
Unit Test1 Test2 Test3
Unit1 0.254279388 0.154220478 0.738428693
Unit2 0.144602285 0.522040187 0.425599731
Unit3 0.410137495 0.661168043 0.736937724
这里是代码的sn-p。每列都应该有自己的索引,但 iloc 使用所有列的第一个索引
DATA_MEDIAN = DATA.groupby('Unit').median()
DATA_INDEX = (DATA.set_index(['Unit']) - DATA_MEDIAN).abs().reset_index().groupby('Unit').idxmin()
DATA_INDEX.reset_index(inplace=True)
DATA_CLOSEST = DATA.iloc[DATA_INDEX.index]
【问题讨论】:
-
请告诉你你尝试了什么。给我们看一些代码。谢谢
-
抱歉没有理解。我的意思是在您的问题中使用
edit并在那里显示您的代码。在问题正文中。 -
哪一列的中位数?测试 1、测试 2 还是测试 3?
-
是的,每个测试都有自己的单位中位数
-
您正在寻找最接近中位数的值 - 但中位数究竟是什么?
标签: python