说我将以下数据集作为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
但是由于最频繁的值将改变,因此我不确定我的代码应该是什么。
您能提供的任何帮助将不胜感激。谢谢。
答案 0 :(得分:4)
我们可以使用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