Python 在数据帧中,如何计算特定值,然后选择计数最高的值来创建另一个数据帧?

Python 在数据帧中,如何计算特定值,然后选择计数最高的值来创建另一个数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,我正在寻找一种从数据帧中选择特定数据行的方法。下面是数据帧的一个示例 Id \ Value 0 002D85EF 5 1 002D85EF 1 2 002D85EF 5 3 00557D1B 1 4 00557D1B 1 5 00557D1B 5 6 0063EAFB 5 7 0063EAFB 5 8 0063EAFB 5 9 006DE4E3 1 10 006DE4E3 5 11

我正在寻找一种从数据帧中选择特定数据行的方法。下面是数据帧的一个示例

Id  \  Value
0    002D85EF   5
1    002D85EF   1
2    002D85EF   5
3    00557D1B   1
4    00557D1B   1
5    00557D1B   5
6    0063EAFB   5
7    0063EAFB   5
8    0063EAFB   5
9    006DE4E3   1
10   006DE4E3   5
11   006DE4E3   1
12   006DE4E3   5
我正在寻找这样的输出帧:

Id  \  Value
0    002D85EF   5
1    00557D1B   1
2    0063EAFB   5
注意,ID 006DE4E3不在输出中,因为那里的值计数相等

谢谢大家!

(由于我无法发表评论,我直接尝试给你一个提示,可能不是答案。)

尝试:

df.groupby('Value').max()

df.groupby('Value').count().max()
顺便说一句,答案中给定的行ID与上面的帧行ID和值不匹配。另外,我不明白您为什么不选择
10 006DE4E3 5

编辑 澄清后,我认为您想要的是: 返回Id每次出现的第一个(在已排序的帧中)。但仅当ids组的所有值分布不均匀时。 因此,我的答案是:

将numpy导入为np
作为pd进口熊猫
a=np.random.randint(5,高=10,大小=(20,1))
b=np.random.choice(['a','b','c','d'],20][:,无]
c=pd.DataFrame(np.hstack([b,a]),列=['id','value'])
def first_或_none(grp、col_名称):
cnts=grp.groupby(col_name).count()
如果len(cnts)=len(cnts.nunique()):
一无所获
其他:
返回grp.iloc[0]
c、 groupby(['id'])。应用(first_或_none,'value')。dropna()

在本例中,帧c未排序…

我排除了ID 006DE4E3,因为原始dataframe.Ok中有等量的“1”和“5”值。然后,是否要选择每个id的第一个匹配项,除非每个id的值数具有匹配的值计数数?如果计数匹配,我希望跳过该id。谢谢你的帮助。