我有一个尾部很长的数据集,希望仅对 90% 的数据进行采样。
city score
bangkok 60
kl 20
sydney 10
melbourne 5
dhaka 5
应该是:
city score
bangkok 60
kl 20
sydney 10
最佳答案
首先,对要过滤最高 90% 的数据的值进行排序
df.sort_values('score', ascending=False, inplace=True)
然后,您计算累积和并除以总数,以制定您的过滤条件(您可以将 0.9
替换为您的自定义限制)
df = df[df['score'].cumsum() / df['score'].sum() < 0.9]
现在df
看起来像
city score
bangkok 60
kl 20
sydney 10
关于python - 数据帧的丢弃百分比 [pandas],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51083286/