如何计算分类变量各个类别的占比并保存为表格(python)

我需要计算数据集df中某一个分类变量各个类别的占比时,写了如下代码:

category_percentage_writer = pd.ExcelWriter('各分类特征类别数量和比例.xlsx')

for i in df.columns:
    if df[i].dtype == object:
        percent = pd.DataFrame(df[i].value_counts(normalize=True)*100)
        count = pd.DataFrame(df[i].value_counts())
        result = pd.concat([count, percent], axis=1, join="inner")
        result.to_excel(category_percentage_writer, sheet_name = i, index = True)
  
category_percentage_writer.save()

结果会存储在一个excel表中,每一个分类变量(object类型)的类别分布情况都存储在一个工作表中。

仅供参考,请各位大神指正~

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用pandas库读取csv文件,并使用matplotlib库绘制雷达图。具体步骤如下: 1. 导入所需库 ```python import pandas as pd import matplotlib.pyplot as plt from math import pi ``` 2. 读取csv文件 假设csv文件名为data.csv,其中包含多列数据,需要统计第二列(假设为'category')各类的总数。可以使用pandas库的read_csv函数读取csv文件,并使用value_counts函数统计各类的总数。 ```python df = pd.read_csv('data.csv') category_counts = df['category'].value_counts() ``` 3. 绘制雷达图 使用matplotlib库的pyplot子模块绘制雷达图。首先需要计算每个类别在总数中的比。然后,定义雷达图的角度、类别数量、坐标轴范围、坐标轴标签等参数。最后,使用plot函数绘制雷达图。 ```python # 计算每个类别在总数中的比 total = category_counts.sum() category_proportions = [count/total for count in category_counts] # 定义雷达图的角度、类别数量、坐标轴范围、坐标轴标签等参数 angles = [n/float(len(category_counts)) * 2 * pi for n in range(len(category_counts))] angles += angles[:1] ax = plt.subplot(111, polar=True) plt.xticks(angles[:-1], category_counts.index, color='grey', size=8) ax.set_rlabel_position(0) plt.yticks([0.25, 0.5, 0.75], ["0.25", "0.5", "0.75"], color="grey", size=7) plt.ylim(0, 1) # 使用plot函数绘制雷达图 ax.plot(angles, category_proportions, linewidth=1, linestyle='solid') ax.fill(angles, category_proportions, 'b', alpha=0.1) plt.show() ``` 这段代码会生成一个雷达图,其中每个顶点代表一个类别,每条边代表一种类别比。雷达图中心表示比为0,最外围表示比为1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值