使用PowerShell将CSV文件转换为带状态占比的数据透视表
CSV转带状态占比的数据透视表实现方案
方法一:Excel可视化操作
- 导入CSV文件:打开Excel,点击「数据」选项卡 → 选择「自文本/CSV」,选中
test.csv完成导入 - 创建数据透视表:选中导入的全部数据区域,点击「插入」选项卡 → 「数据透视表」,选择放置透视表的位置(建议新工作表)
- 配置透视表字段:
- 将「Office365状态」「Windows状态」「第三方软件状态」这类状态字段拖入「行」区域
- 将设备唯一标识字段(如「设备ID」)拖入「值」区域,右键设置值汇总方式为「计数」
- 配置占比显示:右键点击「值」区域的计数项 → 「值字段设置」→ 「显示值方式」→ 选择「总计的百分比」,即可看到各状态的占比数据
- 按需调整:可对行标签分组、修改格式,匹配需求的透视表样式
方法二:Python代码实现(基于pandas库)
步骤1:安装依赖
pip install pandas openpyxl
步骤2:执行代码
import pandas as pd # 读取CSV文件 df = pd.read_csv("test.csv") # 定义需要统计的状态列(请根据实际CSV列名修改) status_columns = ["Office365状态", "Windows状态", "第三方软件状态"] # 生成按软件类型拆分的状态占比透视表 pivot_data = df.melt( id_vars=["设备ID"], # 替换为你的设备唯一标识列名 value_vars=status_columns, var_name="软件类型", value_name="状态" ) # 统计计数与占比 pivot_result = pivot_data.groupby(["软件类型", "状态"]).size().reset_index(name="设备数量") pivot_result["占比"] = pivot_result.groupby("软件类型")["设备数量"].apply( lambda x: round(x / x.sum() * 100, 2) ).astype(str) + "%" # 保存为Excel透视表文件 pivot_result.to_excel("设备状态占比透视表.xlsx", index=False) # 打印结果预览 print(pivot_result)
内容的提问来源于stack exchange,提问作者Madhu
相关产品推荐
相关产品推荐

