You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas DataFrame计算水果汇总收获量的下四分位表现者

Pandas 水果收获数据分析解决方案

首先,pd.read_excel本身就会返回DataFrame,所以你原来的代码可以简化为:

df = pd.read_excel('fruit-harvests.xlsx', sheet_name='Harvests')

当然你原本的写法也没问题,不影响后续操作。

下面是对应需求的分步实现:

1. 按水果分组汇总收获总量

通过groupby按水果名称分组后,对HarvestCount字段求和,得到每个水果的总收获量:

# 分组求和,reset_index将分组索引转为普通列,方便后续操作
df_total = df.groupby('Fruit')['HarvestCount'].sum().reset_index()

2. 按收获量排序

用sort_values对总收获量进行排序,默认是升序(从小到大),如果需要降序可以添加ascending=False参数:

# 按收获量从小到大排序
df_sorted = df_total.sort_values(by='HarvestCount')

3. 筛选底部25%的水果

先计算收获量的25分位数(即底部25%的临界值),再筛选出收获量小于等于该值的水果:

# 计算25分位数阈值
threshold = df_sorted['HarvestCount'].quantile(0.25)
# 筛选符合条件的行
bottom_25_fruits = df_sorted[df_sorted['HarvestCount'] <= threshold]
# 提取水果名称列表
result = bottom_25_fruits['Fruit'].tolist()
print(result)  # 预期输出: ['Orange', 'Pineapple']

可选链式写法

如果喜欢更简洁的代码,可以把所有步骤合并成一行:

result = (df.groupby('Fruit')['HarvestCount'].sum()
          .sort_values()
          .loc[lambda x: x <= x.quantile(0.25)]
          .index.tolist())

注意点

  • 若数据中存在同一水果的多条记录,groupby.sum()会自动合并计算该水果的总收获量
  • quantile(0.25)是基于数据分布计算的临界值,比直接取前N行的方式更准确(尤其当数据量较小时)

内容的提问来源于stack exchange,提问作者hotmeatballsoup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:27:39