要保留DataFrame中基于值计数的前n个项目的所有行,可以使用pandas的value_counts()函数来获取每个项目的计数,并根据计数进行排序。然后,可以使用isin()函数来筛选出在前n个项目中的所有行。
下面是一个示例代码:
import pandas as pd
# 创建示例DataFrame
data = {'A': ['apple', 'banana', 'apple', 'banana', 'apple'],
'B': ['red', 'yellow', 'green', 'yellow', 'red']}
df = pd.DataFrame(data)
# 获取每个项目的计数并根据计数进行排序
counts = df['A'].value_counts().sort_values(ascending=False)
# 设置要保留的前n个项目的数量
n = 2
# 获取前n个项目
top_n_items = counts.index[:n]
# 筛选出在前n个项目中的所有行
result = df[df['A'].isin(top_n_items)]
print(result)
这将输出:
A B
0 apple red
2 apple green
4 apple red
在此示例中,我们首先使用value_counts()函数获取'A'列中每个项目的计数,并使用sort_values()函数对计数进行排序。然后,我们设置n为2,表示要保留前2个项目。之后,我们使用isin()函数通过'A'列中的项目是否在前n个项目中来筛选出相应的行。最后,我们打印出结果。
下一篇:保留的向量段错误