假设我将下面的数据集作为CSV文件。
我希望我的输出是一个CSV文件,它是该数据的一个子集,仅基于与列B中最频繁值关联的数据。
在下面的示例数据中,B列中最常见的值是“1”,但是这将发生变化,因此我需要的代码不那么具体。
A B
! 1
@ 1
# 1
$ 1
% 2
^ 3
& 2
* 4
( 5
) 2
In this example, I want my output to be a CSV file of:
A B
! 1
@ 1
# 1
$ 1
但是,由于最频繁的值会改变,我不确定我的代码应该是什么。
你能提供的任何帮助都将不胜感激。谢谢您。
最佳答案
我们可以使用mode
返回最常出现的值,然后根据该值进行筛选:
df[df['B']==df['B'].mode()[0]]
输出:
A B
0 ! 1
1 @ 1
2 # 1
3 $ 1
value_counts
可用于第N个最频繁值(从N=0开始为最频繁值):df[df['B']==df['B'].value_counts().index[N]]
例如,对于N=1:
df[df['B']==df['B'].value_counts().index[1]]
输出:
A B
4 % 2
6 & 2
9 ) 2
关于python - 基于最频繁值的子集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55071427/