Skip to content

huangzhenhao90/survey_data_analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Survey Data Analysis Toolkit

一个基于 Streamlit 构建的多页面应用,帮助用户研究团队快速完成 CSV 数据清洗、频率统计、交叉分析以及基于 OpenAI 的文本分类任务。

提示:如需在本地运行,请确保网络环境允许访问 OpenAI 接口。

功能亮点

数据清洗(数据清洗.py

  • 上传 CSV 后自动保留原始副本,可在侧边栏一键恢复。
  • 通过可视化界面批量重命名或删除列,并支持导出当前版本的清洗结果。
  • 允许配置多条筛选条件(区间、集合、包含关系等)并即时预览筛选结果,支持将结果覆盖当前数据或另存。
  • 自动生成字段概览与数值统计,帮助定位缺失值或异常值。

频率分析(pages/1_频率分析.py

  • 针对单选题快速生成频率表及柱状/条形/饼图。
  • 多选题支持“单列分隔符”与“多列指示变量”两种数据结构。
  • 所有汇总结果均可一键下载。

交叉分析(pages/2_交叉分析.py

  • 支持频数、行百分比、列百分比及总体百分比四种展示方式。
  • 可选第三维进行拆分展示,提供堆叠柱状图、并列柱状图与热力图。
  • 交叉表及可视化均与 Streamlit 交互式刷新。

文本分类(pages/3_文本分类.py

  • 结合任务描述与示例,通过 OpenAI 模型批量分类文本(默认使用 gpt-3.5-turbo)。
  • 可自定义温度、最大 Token、单次处理行数,支持下载完整分类结果。
  • 兼容新版 openai SDK 与旧版 openai.ChatCompletion 接口。

快速开始

python -m venv .venv
source .venv/bin/activate  # Windows 使用 .venv\Scripts\activate
pip install -r requirements.txt
streamlit run 数据清洗.py

运行后,Streamlit 会自动识别 pages/ 目录下的多页面模块。

OpenAI API 配置

文本分类页面依赖 OpenAI 模型,请在运行环境中设置 OPENAI_API_KEY

  • 使用 Streamlit Cloud 或共享部署时,可在 .streamlit/secrets.toml 中添加:

    OPENAI_API_KEY = "your-api-key"
  • 本地运行可在 shell 中导出:

    export OPENAI_API_KEY="your-api-key"

若未检测到密钥,页面会提示用户补充配置。

常见问题

  • 文件编码问题:上传的 CSV 建议保存为 UTF-8 编码。应用在读取失败时会提示更换编码。
  • 多选题分隔符:默认使用分号 ;,若原始数据使用逗号或其他符号,可在界面中自定义。
  • API 调用异常:文本分类时若遇到限流或无权限,结果表中会标记“调用失败”,并在页面底部列出错误信息。

欢迎根据团队需求继续扩展更多页面或分析功能!

About

upload a csv data, rename column names, and select column to delete

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages