从数据框中检索一定数量的行

Adi*_*ikh 3 python dataframe pandas

我有一个数据框,

df = pd.DataFrame({"X1": ["A", "B", "A", "B", "B","C","C","C"],
"X2": ['FOO','BAR' ,'FOO1', 'BAR1', 'FOO2','BAR2','FOO3','BAR3']})

    X1  X2
0   A   FOO
1   B   BAR
2   A   FOO1
3   B   BAR1
4   B   FOO2
5   C   BAR2
6   C   FOO3
7   C   BAR3
Run Code Online (Sandbox Code Playgroud)

现在我正在计算给出 A:2、B:3、C:3 的值,我想根据 A 的计数提取行。这样,我可以有一个数据框,其中 2 行 A、2 B行和2行C。

所以输出应该是,

    X1  X2
0   A   FOO
2   A   FOO1
1   B   BAR
3   B   BAR1
5   C   BAR2
6   C   FOO3       
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 7

GroupBy.head与计A数值一起使用,通过sum比较值通过Series.eqfor==与按列排序X1

N = df['X1'].eq('A').sum()
df = df.sort_values('X1').groupby('X1').head(N)
print (df)
  X1    X2
0  A   FOO
2  A  FOO1
1  B   BAR
3  B  BAR1
5  C  BAR2
6  C  FOO3
Run Code Online (Sandbox Code Playgroud)