Eks6666 发表于 2024-5-19 02:17

pandas操作excel

import pandas as pd
import numpy as np
#将表格数据转化成列表
def main(file_dj, file_dz, sheet_name):
    a = file_dj
    a1 = file_dz
    b = pd.read_excel(a,sheet_name=sheet_name,dtype={"条形码":str})
    b1 = pd.read_excel(a1,dtype={"条码":str})
    b1=b1[['条码', '商家编码']]
    # 调整条码字段为文
    b1.columns=['条形码','商家编码']

    # 将表格向下填充
    df1 = b.isnull()]
    df1['物流编号'] = df1['物流编号'].fillna(method='ffill')

    # 2个表格根据条码进行做匹配
    outer = pd.merge(df1,b1,on='条形码',how='left')
    outer1=outer.isnull()|outer['货品数量'].notnull()]
    df2 = outer1 != 0]
    # 获取快递单号列表,并去重复
    c = df2['物流编号'].values.tolist()
    #print(len(c),c)
    list_kd = list(set(c))
    #print(list_kd)
    #循环每个快递单号,获取所有的产品信息数据
    y = []
    for i in list_kd:
      e = {}
      p = {}
      de = df2 == i][['商家编码', '货品数量']].values.tolist()
      for h in de:
            p] = h

      e['快递单号'] = i
      e['data'] = p
      y.append(e)
    #print(y)
    return (y)
   

def pd_nan(values_nan):
   
    if values_nan is np.nan:
      return 1

def shuliangcuowu(file_dj, sheet_name):
    a=pd.read_excel(file_dj,sheet_name=sheet_name)
    b=a=='数量错误']
    c=b['物流编号'].values.tolist()
    list_kd = list(set(c))
    y = []
    for i in list_kd:
      e = {}
      p = {}
      de ={np.nan: 2}
      e['快递单号'] = i
      e['data'] = de
      y.append(e)
    #print(y)
    return (y)

def rizhi(file_dj, sheet_name):
    a=pd.read_excel(file_dj,sheet_name=sheet_name)
    b=a=='无源单']
    c=b[['物流编号',"操作结果"]].values.tolist()
    return c

hl0999 发表于 2024-5-19 09:41

哇,这个看起来好优秀的样子,学习了

FDL 发表于 2024-5-19 09:56

之前用过,看官方文档学会的:lol

akbar123 发表于 2024-5-19 10:23

完全看不懂{:1_937:}

pujenyuan 发表于 2024-5-19 10:31

很优秀。read_excel这个是读,保存如何使用

shubiao05 发表于 2024-5-19 10:35

帮上传一下excel数据模板,就可以测试一下,看看效果了!

moonerick 发表于 2024-5-19 10:42

pujenyuan 发表于 2024-5-19 10:31
很优秀。read_excel这个是读,保存如何使用

to_excel()

ericwise 发表于 2024-5-19 10:57

不完整啊,也没有自定义函数调用

bx05 发表于 2024-5-19 11:15

学习一下,看看

ylixx 发表于 2024-5-19 12:05

好高大上的样子,学习学习
页: [1]
查看完整版本: pandas操作excel