Pandas如何基于指定列筛选条件统计另一列的取值出现频次
实现代码
import pandas as pd # 读取本地CSV文件 df = pd.read_csv("替换为你的CSV文件实际路径.csv") # 方式1:先统一重命名列(推荐,避免原表头空格导致的调用错误) df.columns = ["car_id", "manufacturer", "car_year", "car_model"] # 筛选Ford品牌条目,统计车型出现次数 result = df[df["manufacturer"] == "Ford"]["car_model"].value_counts().reset_index() # 重命名列符合预期输出格式 result.columns = ["model", "counts"] # 方式2:不修改原列名直接操作(需确保列名和CSV表头完全一致) # result = df[df["column2"] == "Ford"]["column4"].value_counts().reset_index() # result.columns = ["model", "counts"] # 打印输出结果 print(result)
逻辑说明
value_counts()是pandas内置的频次统计方法,会直接计算目标列各取值的出现次数,搭配reset_index()可以把统计结果从Series格式转为DataFrame格式- 最终输出的
result和你预期的统计结果完全一致
内容的提问来源于stack exchange,提问作者Mumdooh
相关产品推荐
相关产品推荐

