如何聚合DataFrame拆分后三列的变量出现频率?
解决方案
可以通过把拆分后的三列合并成单列,再统计总出现频率,这里提供几种实用方法:
方法1:用melt转长表后统计
melt能把多列转为单列格式,之后直接统计频率:
# 提取目标三列,重塑为长数据 melted_data = df8.melt( value_vars=['Key Features A', 'Key Features B', 'Key Features C'], value_name='Key Features' ) # 计算总出现次数 total_freq = melted_data['Key Features'].value_counts()
方法2:直接拼接三列统计
把三列数据拼接成一个Series,再做频率统计:
# 合并三列数据 combined_features = pd.concat([ df8['Key Features A'], df8['Key Features B'], df8['Key Features C'] ]) # 统计总频率 total_freq = combined_features.value_counts()
额外提示
- 如果数据里有空值(NaN),可以加
dropna=True忽略空值:total_freq = combined_features.value_counts(dropna=True) - 其实你可以跳过拆分三列的步骤,直接从原始列统计,更高效:
# 直接拆分原列并展平,统计总频率 total_freq = df['Key Features'].str.split(',', expand=True).stack().value_counts()
内容的提问来源于stack exchange,提问作者Tez
相关产品推荐
相关产品推荐

