机器学习数据处理

1.将xslx转为csv格式

复制代码
import os
import pandas as pd


def xlsx_to_csv_recursive(root_folder, output_root=None):
    """
    递归转换文件夹及其所有子文件夹中的 xlsx 文件

    Parameters:
    root_folder (str): 包含xlsx文件的根文件夹路径
    output_root (str, optional): 输出csv文件的根文件夹路径,如果为None则保存在原文件夹
    """
    # 如果没有指定输出文件夹,则使用原文件夹作为输出位置
    if output_root is None:
        output_root = root_folder

    # 使用os.walk递归遍历根文件夹及其所有子文件夹
    # root: 当前遍历的文件夹路径
    # dirs: 当前文件夹中的子文件夹列表
    # files: 当前文件夹中的文件列表
    for root, dirs, files in os.walk(root_folder):
        # 计算当前文件夹相对于根文件夹的相对路径
        # 例如:如果root_folder是"C:/data",当前root是"C:/data/subfolder"
        # 那么relative_path就是"subfolder"
        relative_path = os.path.relpath(root, root_folder)

        # 构建对应的输出文件夹路径
        # 将相对路径添加到输出根目录下
        output_folder = os.path.join(output_root, relative_path)

        # 如果输出文件夹不存在,则创建它(包括所有必要的父目录)
        if not os.path.exists(output_folder):
            os.makedirs(output_folder)

        # 遍历当前文件夹中的所有文件
        for filename in files:
            # 检查文件是否为Excel格式(.xlsx或.xls)
            if filename.endswith('.xlsx') or filename.endswith('.xls'):
                # 构建完整的Excel文件输入路径
                xlsx_path = os.path.join(root, filename)

                # 构建CSV输出文件名:将原文件扩展名替换为.csv
                # os.path.splitext将文件名分割为(名称,扩展名)
                # 例如:"data.xlsx" -> ("data", ".xlsx")
                csv_filename = os.path.splitext(filename)[0] + '.csv'
                # 构建完整的CSV文件输出路径
                csv_path = os.path.join(output_folder, csv_filename)

                try:
                    # 使用pandas读取Excel文件
                    # pd.read_excel会自动处理xlsx和xls格式
                    df = pd.read_excel(xlsx_path)

                    # 将DataFrame保存为CSV文件
                    # index=False: 不保存行索引
                    # encoding='utf-8-sig': 使用带BOM的UTF-8编码,确保中文等特殊字符正确显示
                    df.to_csv(csv_path, index=False, encoding='utf-8-sig')

                    # 打印成功信息,显示相对路径和文件名
                    print(f"成功转换: {os.path.join(relative_path, filename)}")

                except Exception as e:
                    # 如果转换过程中出现错误,捕获异常并打印错误信息
                    print(f"转换失败 {filename}: {str(e)}")


# 使用方法
# 请将下面的路径替换为你的实际文件夹路径
root_folder = "D:\Code\python\pro01\故宫数据"  # 例如: "C:/我的文档/Excel数据" 或 "./data"

# 调用函数开始转换
xlsx_to_csv_recursive(root_folder, "故宫数据csv")

# 可选:如果你想将CSV文件保存到不同的文件夹,可以指定output_root参数
# xlsx_to_csv_recursive(root_folder, "输出文件夹路径")

2.数据标准化处理

相关推荐
想会飞的蒲公英1 分钟前
PyTorch中SGD 与 Momentum 从零理解:给最朴素的优化器加上“惯性“
人工智能·pytorch·python·深度学习·机器学习
白白白小纯3 分钟前
每日算法day3—回文链表,链表分割
c语言·数据结构·算法·leetcode
编程风暴4 分钟前
3类人群的数据分析实习类型选择+4条选错红线
java·前端·数据分析
钱六两13 分钟前
Spring AI 使用 MCP 客户端(调用高德 MCP)
java·人工智能·spring
城管不管21 分钟前
RabbitMQ死信队列
java·分布式·ai·面试·职场和发展·rabbitmq·agent
ShallWeL26 分钟前
【机器学习】(32)—— Embedding 串讲
人工智能·机器学习·embedding
手写码匠26 分钟前
华为云Flexus+DeepSeek征文|Dify 构建企业级联网搜索 Agent:查询改写、多源检索与引用溯源实战
人工智能·深度学习·算法·aigc
long31627 分钟前
Java 团队入门到精通学习资料
java·开发语言
七夜zippoe30 分钟前
DolphinDB 能耗统计分析实战:报表生成、同比环比与定额对比
人工智能·算法·dolphindb·报表生成·能耗统计·定额对比
vx-程序开发30 分钟前
【java项目分享】springboot农产品销售平台14952
java·javascript·spring boot·python·eclipse·django·php