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

如何通过for循环遍历Pandas DataFrame,基于指定列表统计值的数量与均值

如何通过for循环遍历Pandas DataFrame,统计指定列表元素的出现次数与对应值的均值?

你需要基于给定的水果列表,用for循环来统计每个水果在DataFrame中的出现次数,以及对应value列的均值,而不是直接依赖value_counts()。先明确你的输入数据和期望目标:

输入DataFrame

Fruits  value
apple   10
apple   20
orange  2
grapes  5
grapes  10
grapes  3

指定统计列表

My_list = ['apple', 'orange', 'grapes']

期望输出

Fruits  count  average
apple   2      15
orange  1      2
grapes  3      6

接下来直接上代码实现,思路很直观:先初始化一个空的结果容器,然后遍历列表里的每个水果,筛选对应行后计算数量和均值,最后把结果整理成DataFrame:

import pandas as pd

# 创建你的目标DataFrame
data = {
    'Fruits': ['apple', 'apple', 'orange', 'grapes', 'grapes', 'grapes'],
    'value': [10, 20, 2, 5, 10, 3]
}
df = pd.DataFrame(data)

My_list = ['apple', 'orange', 'grapes']

# 初始化结果列表,用来存储每个水果的统计数据
result_data = []

for fruit in My_list:
    # 筛选当前水果的所有行
    filtered_rows = df[df['Fruits'] == fruit]
    # 计算出现次数
    count = len(filtered_rows)
    # 计算value列的均值(如果列表里有DataFrame不存在的元素,可以加判断避免报错)
    average = filtered_rows['value'].mean()
    # 将结果存入列表
    result_data.append({'Fruits': fruit, 'count': count, 'average': average})

# 转换为最终的结果DataFrame
result_df = pd.DataFrame(result_data)

print(result_df)

运行这段代码后,就能得到和你期望完全一致的输出。如果担心列表里存在DataFrame中没有的水果,可以额外加个判断(比如if fruit in df['Fruits'].values),避免计算均值时出现空值报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:12:36