学习使用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()
解析结果