如何对DataFrame各列分组统计0和1出现次数并生成新DataFrame
解决方法
不用逐个手动groupby,用以下两种高效方法可以直接生成目标格式的DataFrame:
方法一:批量统计后拼接
import pandas as pd # 替换为你的二进制特征列名列表 binary_features = ['chocolate', 'bar', 'hard', 'fruity'] # 遍历每个特征,统计0/1出现次数后合并 stats_list = [data[col].value_counts().rename(col) for col in binary_features] result_df = pd.concat(stats_list, axis=1) # 转置调整行列结构,补全缺失的类别并转成整数 result_df = result_df.T.fillna(0).astype(int)
方法二:用apply简化代码
import pandas as pd binary_features = ['chocolate', 'bar', 'hard', 'fruity'] result_df = data[binary_features].apply(pd.Series.value_counts).T.fillna(0).astype(int)
两种方法最终都会生成以特征名为行、0和1为列、对应次数为值的DataFrame,完全匹配你要的格式。
内容的提问来源于stack exchange,提问作者fede1205
相关产品推荐
相关产品推荐

