如何合并多个pandas DataFrame指定列的value_counts统计结果
实现代码
import pandas as pd # 先将分组名和对应DataFrame建立映射,避免重复写逻辑 group_df_map = { "AB": df_AB, "AC": df_AC, "AD": df_AD, "AE": df_AE, "AF": df_AF, "AG": df_AG } result_list = [] for group_name, df in group_df_map.items(): count_res = df["is_valid"].value_counts() # 构造每行统计数据,无对应布尔值时默认补0 result_list.append({ "Group": group_name, "is_valid_True_Count": count_res.get(True, 0), "is_valid_False_Count": count_res.get(False, 0) }) # 转换为最终结果表 df_result = pd.DataFrame(result_list)
原代码问题说明
你之前的写法是给value_counts()返回的统计Series直接新增group字段,这会让原本索引为True/False的Series多了一个group索引项,无法直接拼接为按分组一行展示的结构。上述写法将每个分组的统计结果统一构造成字典再合并,即可得到符合要求的输出。
内容的提问来源于stack exchange,提问作者user3447653
相关产品推荐
相关产品推荐

