python – 在列表中的值的不同列标题中打印值
发布时间:2020-12-20 11:07:03 所属栏目:Python 来源:网络整理
导读:此代码用于跟踪哪些交付延迟.我希望找到延迟交货的每个实例,并找到与之关联的采购订单编号.我当前的代码能够生成一个列表,显示指定范围的延迟天数.但是,由于这些值存储在列表中,因此无法找到与后期相关的采购订单编号.我希望在终端打印,采购订单号和交货延迟
此代码用于跟踪哪些交付延迟.我希望找到延迟交货的每个实例,并找到与之关联的采购订单编号.我当前的代码能够生成一个列表,显示指定范围的延迟天数.但是,由于这些值存储在列表中,因此无法找到与后期相关的采购订单编号.我希望在终端打印,采购订单号和交货延迟的天数. (从那里我将使用if语句仅查看值> 0以仅查看哪些交付延迟).我的问题是,我如何在终端上打印,采购订单编号及其旁边的天数(我不知道如何执行此操作,因为所有“迟到天数”的值都存储在列表)
import csv import pandas as pd import datetime def calculate(number): fileread = pd.read_csv('otd.csv',encoding='latin-1') Deliveryvalue = fileread['Delivery Date'] Desiredvalue = fileread['source desired delivery date'] date_format = '%m/%d/%Y' date1 = datetime.datetime.strptime(Deliveryvalue[number],date_format) date2 = datetime.datetime.strptime(Desiredvalue[number],date_format) diff= date1 - date2 diff2 = diff.days return diff2 list = [] for i in range(1,20): list.append(calculate(i)) for y in list: if y > 1: print(list) 打印这个: [0,-7,3,50,1,-9,0] # the negative numbers are early deliveries 这是我的csv文件的一个虚拟示例: 解决方法import pandas as pd # change names appropriately PURCHASE_ORDER = 'Purchase Order' DELIVERY_DATE = 'Delivery Date' DESIRED_DATE = 'Desired Date' DELAYED_DAYS = 'Delayed Days' df = pd.read_csv('otd.csv',index_col=PURCHASE_ORDER) – >> df Delivery Date Desired Date Purchase Order 001 2014-12-31 2014-12-31 002 2014-12-31 2014-12-31 003 2015-01-05 2015-01-05 004 2015-01-05 2015-01-05 005 2015-02-12 2015-02-11 006 2016-02-13 2016-02-11 最后两次送货迟到了. df[DELIVERY_DATE] = pd.to_datetime(df[DELIVERY_DATE]) df[DESIRED_DATE] = pd.to_datetime(df[DESIRED_DATE]) df[DELAYED_DAYS] = df[DELIVERY_DATE] - df[DESIRED_DATE] late_threshold = pd.Timedelta(days=0) late_deliveries = df[DELAYED_DAYS] > late_threshold – >> df[late_deliveries].drop([DELIVERY_DATE,DESIRED_DATE],axis=1) Delayed Days Purchase Order 005 1 days 006 2 days (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |