假设我将下面的数据集作为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/

10-10 13:43