python学习

学习使用python操作excel表格

原始表格如下

将其中数据按一定规则解析读取

import pandas as pd
import ast

def parseData():
    # 读取原始 Excel 文件
    input_file = r"C:\Users\Administrator\Downloads\data.xlsx"  # 替换为你的实际文件路径
    df = pd.read_excel(input_file)

    # 新数据行的集合
    new_rows = []

    for _, row in df.iterrows():
        try:
            parm1_list = ast.literal_eval(str(row['parm_001']))
            parm2_list = ast.literal_eval(str(row['parm_002']))
            parm3_list = ast.literal_eval(str(row['parm_003']))
        except Exception as e:
            print(f"解析失败:{e}")
            continue

        # 确保三个数组长度一致
        if not (len(parm1_list) == len(parm2_list) == len(parm3_list)):
            print("数组长度不一致,跳过该行")
            continue

        for i in range(len(parm1_list)):
            val = parm1_list[i]
            b_val = parm2_list[i]
            c_val = parm3_list[i]

            # 将 parm_001 的值转换为 4 个十进制
            bin_str = format(val, '016b')
            bin_parts = [int(bin_str[j:j+4], 2) for j in range(0, 16, 4)]

            # 拼成一行:4个 + parm_002[i] + parm_003[i]
            row_data = bin_parts + [b_val, c_val]
            new_rows.append(row_data)

    # 构建 DataFrame
    output_df = pd.DataFrame(new_rows, columns=[
        'parm_001', 'parm_002', 'parm_003', 'parm_004', 'parm_005', 'parm_006'
    ])

    # 写入 Excel
    output_df.to_excel('解析结果.xlsx', index=False)
    print("✅ 已生成:解析结果.xlsx")

if __name__ == '__main__':
    parseData()

解析结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值