Python 连接多个数据帧,其中每个数据帧/表都有其单独的索引 l1=员工人数-无班次+1 l2=范围(l1) l3=范围(l1-2) l4=[] 打印(“-----------l2----值”,l2) 轮班时间=(24/无轮班) 移位时间1=(24/不移位1) shift_正时=[] 班次计时1=[] 天数=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”] 工作日=[“周一”、“周二”、“周三”、“周四”、“周五”] 周末=[“周六”、“周日”] 数据=[[l3[1],[2]], [l3[1],[2]], [l2[1],[2]], [l2[1],[2]], [l2[1],[2]] 打印(“----数据列表---”,数据) 数据1=[[1],[2]], [[1], [2]]] 如果员工人数24: t=(t-24) a=(str(开始时间)+'-'+str(t)) shift_定时。追加(a) 如果t=24: 开始时间=0 对于范围内的日期(0,无移位1): t=(开始时间1+移位时间1) 如果t>24: t=(t-24) a=(str(开始时间1)+'-'+str(t)) 班次计时1.追加(a) 如果t=24: 开始时间1=0 employee_数组=[] read('config.ini') l=dict(cfg.items('staffData')) employee_数组=列表(l.values()) orignal_employee_数组=employee_数组 打印(json.dumps(employee_数组)) 标志=1 如果员工人数%2==0: 循环的员工人数=(员工人数/2+1) elif员工人数%2!=0: 循环的员工人数=(员工人数+1) y=0 z=0 当标记

Python 连接多个数据帧,其中每个数据帧/表都有其单独的索引 l1=员工人数-无班次+1 l2=范围(l1) l3=范围(l1-2) l4=[] 打印(“-----------l2----值”,l2) 轮班时间=(24/无轮班) 移位时间1=(24/不移位1) shift_正时=[] 班次计时1=[] 天数=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”] 工作日=[“周一”、“周二”、“周三”、“周四”、“周五”] 周末=[“周六”、“周日”] 数据=[[l3[1],[2]], [l3[1],[2]], [l2[1],[2]], [l2[1],[2]], [l2[1],[2]] 打印(“----数据列表---”,数据) 数据1=[[1],[2]], [[1], [2]]] 如果员工人数24: t=(t-24) a=(str(开始时间)+'-'+str(t)) shift_定时。追加(a) 如果t=24: 开始时间=0 对于范围内的日期(0,无移位1): t=(开始时间1+移位时间1) 如果t>24: t=(t-24) a=(str(开始时间1)+'-'+str(t)) 班次计时1.追加(a) 如果t=24: 开始时间1=0 employee_数组=[] read('config.ini') l=dict(cfg.items('staffData')) employee_数组=列表(l.values()) orignal_employee_数组=employee_数组 打印(json.dumps(employee_数组)) 标志=1 如果员工人数%2==0: 循环的员工人数=(员工人数/2+1) elif员工人数%2!=0: 循环的员工人数=(员工人数+1) y=0 z=0 当标记,python,pandas,dataframe,Python,Pandas,Dataframe,我尝试使用pandas和csv编写器实现它 我希望每个数据帧/表都有自己的索引,而不是一个普通索引。在internet上的任何地方都找不到解决方案 我甚至尝试了csv writer,因为它在csv文件中的打印方式不正确。我通过将csv writer和pandas的功能结合起来得到了答案, 使用以下行: l1 = number_of_employees - no_shift + 1 l2 = range(l1) l3 = range(l1-2) l4 = [] print("---------l2

我尝试使用pandas和csv编写器实现它

我希望每个数据帧/表都有自己的索引,而不是一个普通索引。在internet上的任何地方都找不到解决方案


我甚至尝试了csv writer,因为它在csv文件中的打印方式不正确。

我通过将csv writer和pandas的功能结合起来得到了答案, 使用以下行:

l1 = number_of_employees - no_shift + 1
l2 = range(l1)
l3 = range(l1-2)
l4 = []
print("---------l2----value",l2)

shift_time = (24/no_shift)
shift_time1 = (24/no_shift1 )
shift_timing = []
shift_timing1 = []
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday","Sunday"]
weekday = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
weekend = ["Saturday","Sunday"]

data=  [[l3, [1], [2]],
        [l3, [1], [2]],
        [l2, [1], [2]],
        [l2, [1], [2]],
        [l2, [1], [2]]]
print(" ------data list-----", data)

data1 = [ [[1], [2]],
        [[1], [2]]]
if number_of_employees < no_shift:
    print ("Not possible to schedule with the given constraints")
    exit()

for day in range(0, no_shift):
    t = (start_time + shift_time)
    if t > 24 :
        t = (t-24)
    a = (str(start_time) + '-' + str(t))
    shift_timing.append(a)
    if t < 24:
        start_time = t
    elif t >= 24:
        start_time = 0
for day in range(0, no_shift1):
    t = (start_time1 + shift_time1)
    if t > 24 :
        t = (t-24)
    a = (str(start_time1) + '-' + str(t))
    shift_timing1.append(a)
    if t < 24:
        start_time1 = t
    elif t >= 24:
        start_time1 = 0
employee_array = []
cfg.read('config.ini')
l = dict(cfg.items('staffData'))
employee_array = list(l.values())
orignal_employee_array = employee_array
print (json.dumps(employee_array))
flag = 1
if number_of_employees % 2 == 0:
    employee_count_for_loop = (number_of_employees / 2 + 1)
elif number_of_employees % 2 != 0:
    employee_count_for_loop = (number_of_employees + 1)
y = 0
z = 0
while flag < employee_count_for_loop:
    print("------------------------------- WEEK", flag, '--------------------------------')
    y = 0
    for day in range(0, 7):
        if day == 5 or day == 6:
            z =  0
            if number_of_employees < 5:
                for shift in range(1, 2):

                    data1[y][z] = employee_array[shift + no_shift]
                    z += 1
            else:
                for shift in range(0, 2):

                    data1[y][z] = employee_array[shift + number_of_employees - 2]
                    z += 1
            y+=1
        elif day == 2 or day == 3 or day == 4:
            for shift in range(0, no_shift):
                p = shift
                if shift == 0:
                    data[day][shift][shift] = employee_array[shift]
                    data[day][shift][shift] = json.dumps(data[day][shift][shift])
                    for shift_number in range(no_shift, number_of_employees ):
                        data[day][shift][p + 1] = employee_array[shift_number]
                        data[day][shift][p + 1] = json.dumps(data[day][shift][p + 1])
                        p = p + 1
                else:
                    data[day][shift] = employee_array[shift]
        else:
            for shift in range(0, no_shift):
                p = shift
                if shift == 0:
                    data[day][shift][shift] = employee_array[shift]
                    data[day][shift][shift]= json.dumps(data[day][shift][shift])
                    for shift_number in range(no_shift, number_of_employees-2):
                        data[day][shift][p + 1] = employee_array[shift_number]
                        data[day][shift][p + 1] = json.dumps(data[day][shift][p + 1])
                        p = p + 1
                else:
                    data[day][shift] = employee_array[shift]
    print("------EmployeeArray---", employee_array)
    employee_array = employee_array[-2:] + employee_array[:-2]
    if employee_array == orignal_employee_array:
        if no_shift == 2:
            employees_array = employee_array[-1:] + employee_array[:-1]
            orignal_employee_array = employee_array
        employee_array = employee_array[-4:] + employee_array[:-4]
        orignal_employee_array = employee_array
    flag = flag + 1
    print ("*****WEEKDAY*****")
    midx = pd.MultiIndex.from_product([weekday, shift_timing])
    test = pd.DataFrame(data, index=weekday ,columns=shift_timing)
    test1 = tabulate(test, headers=shift_timing1, tablefmt='orgtbl')
    l4.append(test)
    print ("*****WEEKEND*****")
    midx = pd.MultiIndex.from_product([weekend, shift_timing1])
    test = pd.DataFrame(data1, index=weekend, columns=shift_timing1)
    test2 = (tabulate(test,headers=shift_timing1,tablefmt='orgtbl'))
    l4.append(test)
pd.concat(l4,ignore_index = False).to_csv('file1.csv')
有关更多信息,请参阅此链接:

 df.to_csv(path_or_buf=csv_file)