Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CSV列表操作/日期和时间_Python_Csv_Date_Datetime - Fatal编程技术网

Python CSV列表操作/日期和时间

Python CSV列表操作/日期和时间,python,csv,date,datetime,Python,Csv,Date,Datetime,我正在开发一个python程序,它可以更改现有CSV的格式 这是CSV的目标格式 这是原始状态 3障碍 从模型库中删除“-”(完整) 在生产日期中添加“-”,并加上“T”(完成) 将PL Seq list更改为time/或可能创建包含time的新列 条件,08:00:00开始 条件下,每行增加1 条件,为每个日期重新启动 条件,重新启动,用于H seq 第1步和第2步我已经猜到了,但第3步我迷路了 这是到目前为止我的代码 import pandas as pd df = pd.r

我正在开发一个python程序,它可以更改现有CSV的格式

这是CSV的目标格式

这是原始状态

3障碍

  • 从模型库中删除“-”(完整)

  • 在生产日期中添加“-”,并加上“T”(完成)

  • 将PL Seq list更改为time/或可能创建包含time的新列

    条件,08:00:00开始

    条件下,每行增加1

    条件,为每个日期重新启动

  • 条件,重新启动,用于H seq

    第1步和第2步我已经猜到了,但第3步我迷路了

    这是到目前为止我的代码

    import pandas as pd
    
    df = pd.read_csv("AMS truck schedule.txt",delimiter=';')
    df.to_csv('Demo1.csv')
    
    import csv
    
    
    
    with open('Demo1.csv','r') as csv_file:
        csv_reader = csv.DictReader(csv_file)
        order_numbers = []
        csvtimes = []
        sequence = []
        for line in csv_reader:
            order_numbers.append(line['MODELCHASS'])
            csvtimes.append(line['Prod Date'])
            sequence.append(line['PL Seq'])
    
    #replace the dash for the order numbers
    on = [sub.replace("-","") for sub in order_numbers]
    print(on[1225])
    
    newtimes = [x[0] + x[1] +x[2] +x[3] +"-" +x[4] +x[5] +"-" +x[6] +x[7] + "T" for x in csvtimes]
    

    我不能100%确定您何时要重新启动。 据我所知,如果出现以下情况,您需要重新启动一小时:

    a) 生产日期列中最后一位数字的更改 b) 在pl-seq中,第一个字母发生变化

    如果我们到达24小时,而(a或b)为假呢?我们是否继续24小时,直到a或b为真

    无论如何,你可以添加更多的条件,我不知道这是否是最有效的方法,但它是有效的。在执行此操作之前,必须创建一列:

    df['hours']=8,所以它是一个所有行都为8的列 df=pd.DataFrame(pd.read_csv(文件名))


    提供文本数据示例,而不是屏幕截图。回答者希望剪切粘贴测试数据。提供一个重现您所遇到问题的方法。您有输入和输出状态,但没有代码的错误。问题是什么?这里有一个链接,指向我的CSV文件的当前状态和目标[链接]()
    prev_row = None
    for index,row in df.iterrows():
    
        if prev_row is not None:
    
            if (row['pl'][0] == prev_row['pl'][0]) and (str(row['date'])[-2:] == str(prev_row['date'])[-2:]) :
                row['hours'] = prev_row['hours'] + 1
                print(row)
            else:
                row['hours'] = 8  
        df.iloc[index] = row     
        prev_row = row