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)
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)