如何在R语言中分别统计多列中特定值的出现次数?
批量统计CSV各列指定值的出现频率
直接用Python的pandas就能实现批量统计,以下是针对需求的完整代码示例:
import pandas as pd # 读取你的CSV文件,替换成实际文件路径 df = pd.read_csv('your_data.csv') # 替换成你要统计的目标值 target_val = "目标值" # 构建结果存储结构 stats_result = { '列名称': [], '出现次数': [], '出现频率': [] } # 遍历每一列统计 for column in df.columns: # 统计目标值出现次数,不存在则返回0 val_count = df[column].value_counts().get(target_val, 0) # 计算频率(次数/总行数) val_freq = val_count / len(df) # 存入结果 stats_result['列名称'].append(column) stats_result['出现次数'].append(val_count) stats_result['出现频率'].append(round(val_freq, 4)) # 保留4位小数 # 转换为DataFrame result_df = pd.DataFrame(stats_result) # 可以直接打印或保存到文件 print(result_df) # result_df.to_csv('frequency_stats.csv', index=False)
如果需要统计所有值的出现频率(而非单个值),可以用这段代码:
import pandas as pd df = pd.read_csv('your_data.csv') # 遍历每一列生成统计结果,合并成一个大的DataFrame all_stats = [] for column in df.columns: col_stats = df[column].value_counts(normalize=True).reset_index() col_stats.columns = ['值', '出现频率'] col_stats['列名称'] = column all_stats.append(col_stats) final_df = pd.concat(all_stats, ignore_index=True) print(final_df)
内容的提问来源于stack exchange,提问作者N Tmz
相关产品推荐
相关产品推荐

