Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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 尝试完成简单的间隔调度_Python_Dataframe_Permutation - Fatal编程技术网

Python 尝试完成简单的间隔调度

Python 尝试完成简单的间隔调度,python,dataframe,permutation,Python,Dataframe,Permutation,尝试使用Python代码和数据帧来完成间隔调度将是最简单的 说我有 1 = Available 0 = !Available Person Day1 Day2 --------------------- 1 1 0 2 1 1 3 0 1 4 1 1 及 I一些可用的明细表是((P1,J1)(P2,J2))或((P2,J1)、(P3,J2))等。 我最初的想法是3个循环

尝试使用Python代码和数据帧来完成间隔调度将是最简单的

说我有

1 = Available
0 = !Available

Person   Day1    Day2
---------------------
1        1        0
2        1        1
3        0        1
4        1        1

I一些可用的明细表是((P1,J1)(P2,J2))或((P2,J1)、(P3,J2))等。 我最初的想法是3个循环

Collect_df = pd.dataframe()
iter = 0
For iter < Person_DF.shape[0]
 For p_row in Person_DF
  For J in Jobsite_DF
   For p_col in p_row
    For j_col in J
     If p_col == 1 AND j_col == 1
      Collect_df = Collect_df.append(pair_one = [p_col,j_col]
      p_col = 0
      j_col = 0

some code to check if at the end and loop back around Person_DF 


 If collect_df != 'Sum of all jobsite days'
        not a full Schedule, delete it
 else
        Keep this as a possible complete schedule
Collect_df=pd.dataframe()
iter=0
国际热核实验堆
这感觉是错误的和笨拙的。而且我每次都必须重新迭代(并循环,所以如果我在第三次迭代中从P3开始,我必须进行P4、P1、P2,以使每一个可能的配对)


是否有人有更好的解决方案或能够帮助我?提前感谢

您能更清楚地了解您想要的输出吗?您需要所有可用的组合吗?(因此需要工作和人员吗?)是否需要全面,因为我在任何一天都不能使用person_X超过1次?请更正“我不能在任何一天使用person_X超过1次?”只要返回有效的计划表。我认为在每次迭代结束时汇总所有行就足够容易了。如果作业的任何总和大于1,计划表就不起作用了?
Collect_df = pd.dataframe()
iter = 0
For iter < Person_DF.shape[0]
 For p_row in Person_DF
  For J in Jobsite_DF
   For p_col in p_row
    For j_col in J
     If p_col == 1 AND j_col == 1
      Collect_df = Collect_df.append(pair_one = [p_col,j_col]
      p_col = 0
      j_col = 0

some code to check if at the end and loop back around Person_DF 


 If collect_df != 'Sum of all jobsite days'
        not a full Schedule, delete it
 else
        Keep this as a possible complete schedule