5、python IO小结

本文介绍了一种使用Python进行Excel和CSV文件数据预处理的方法。通过Pandas和NumPy库实现数据读取、清洗及格式转换,并将处理后的数据输出到新的Excel或CSV文件中,适用于物流或仓储管理等场景中的数据批量处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、xlsx input

import pandas as pd
import numpy as np
def Pretreatment(data):
    data1 = data[[u"sku_id",u"长s",u"宽s",u"高s",u"重量",u"箱子长s",u"箱子宽s",u"箱子高s"]]
    data2 = np.array(data1)
    data3 = data2.tolist()
    return data3

data = pd.read_excel("输入格式.xlsx")
data = Pretreatment(data)

2、xlsx output

def outPretreatment(data,result):
    output = copy.deepcopy(data)
    for i in range(len(output)):
        output[i] += [result[0][i],result[1][i],result[2][i],result[3][i]]
    output = pd.DataFrame(output)
    output.columns = ['sku_id','长s', '宽s', '高s', '重量', '箱子长s', '箱子宽s', '箱子高s', '码盘件数', '码垛层数', '每层件数', '体积利用率']
    
    return output
output = outPretreatment(data,result)
output.to_excel('码盘结果汇总.xlsx')

3、csv input

import re
import os

def num_f(f):
    flines = -1
    for i in f:
        flines = flines + 1
    return flines

def read_csv(f,num_f):
    
    f=open(r'输入格式.csv')
    
    data = []
    
    #标题不读
    f.readline()
    
    for i in range(num_f):
        
        row = f.readline()
        row = re.split(',', row)
        for k in range(1,len(row)):
            row[k] = int(row[k])
        
        data.append(row)
    
    return data

num_f = num_f(open(r'输入格式.csv'))
data = read_csv(open(r'输入格式.csv'),num_f)

4、csv output

def outPut(data,result):
    output = copy.deepcopy(data)
    for i in range(len(output)):
        output[i] += [result[0][i],result[1][i],result[2][i],result[3][i]]
    
    if os.path.exists("码盘结果汇总.csv"):
        os.remove("码盘结果汇总.csv")
        
    f1 = open("码盘结果汇总.csv","a")
    f1.write('sku_id,长s,宽s,高s,重量,箱子长s,箱子宽s,箱子高s,码盘件数,码垛层数,每层件数,体积利用率\n')
    
    for i in range(len(output)):
        for j in range(len(output[i])):
            f1.write(str(output[i][j]))
            f1.write(',')
        f1.write('\n')
    
    f1.close()

outPut(data,result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值