Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 如何使用pandas实现vlookup风格的交叉引用 给定以下数据帧 jg 作业组 1 116.0 2 116.0 3 116.0 4 116.0 5 116.0 6 116.0 7 124.0 8 124.0 9 74.0 10 74.0 11 74.0 12 126.0 13 126.0 ul 上分组下分组时间 116 116 5 116 124 15 116 74 15 116 126 15 124 116 15 124 124 5 124 74 15 124 126 15 74 116 15 74 124 15 74 74 5 74 126 15 126 116 15 126 124 15 126 74 15 126 126 5 期望结果 下表使用Excelvlookup 颜色仅供参考 数据框结果中不需要灰色填充区域 我正在尝试创建一个数据框/表,其中'Job'来自jg的编号是列和索引。 列中'Job'编号的'Group'值应用于从ul 索引中'Job'编号的'Group'值应用于引用'LowerGroup'中的'ul 这些值是来自ul的'Time',对应于'UpperGroup'和'LowerGroup'。 'UpperGroup'=116和'LowerGroup'=224,映射到'Time'=15_Python_Pandas_Pandas Groupby_Vlookup - Fatal编程技术网

Python 如何使用pandas实现vlookup风格的交叉引用 给定以下数据帧 jg 作业组 1 116.0 2 116.0 3 116.0 4 116.0 5 116.0 6 116.0 7 124.0 8 124.0 9 74.0 10 74.0 11 74.0 12 126.0 13 126.0 ul 上分组下分组时间 116 116 5 116 124 15 116 74 15 116 126 15 124 116 15 124 124 5 124 74 15 124 126 15 74 116 15 74 124 15 74 74 5 74 126 15 126 116 15 126 124 15 126 74 15 126 126 5 期望结果 下表使用Excelvlookup 颜色仅供参考 数据框结果中不需要灰色填充区域 我正在尝试创建一个数据框/表,其中'Job'来自jg的编号是列和索引。 列中'Job'编号的'Group'值应用于从ul 索引中'Job'编号的'Group'值应用于引用'LowerGroup'中的'ul 这些值是来自ul的'Time',对应于'UpperGroup'和'LowerGroup'。 'UpperGroup'=116和'LowerGroup'=224,映射到'Time'=15

Python 如何使用pandas实现vlookup风格的交叉引用 给定以下数据帧 jg 作业组 1 116.0 2 116.0 3 116.0 4 116.0 5 116.0 6 116.0 7 124.0 8 124.0 9 74.0 10 74.0 11 74.0 12 126.0 13 126.0 ul 上分组下分组时间 116 116 5 116 124 15 116 74 15 116 126 15 124 116 15 124 124 5 124 74 15 124 126 15 74 116 15 74 124 15 74 74 5 74 126 15 126 116 15 126 124 15 126 74 15 126 126 5 期望结果 下表使用Excelvlookup 颜色仅供参考 数据框结果中不需要灰色填充区域 我正在尝试创建一个数据框/表,其中'Job'来自jg的编号是列和索引。 列中'Job'编号的'Group'值应用于从ul 索引中'Job'编号的'Group'值应用于引用'LowerGroup'中的'ul 这些值是来自ul的'Time',对应于'UpperGroup'和'LowerGroup'。 'UpperGroup'=116和'LowerGroup'=224,映射到'Time'=15,python,pandas,pandas-groupby,vlookup,Python,Pandas,Pandas Groupby,Vlookup,可复制数据帧 将熊猫作为pd导入 ul_data={'UpperGroup':[116,116,116,124,124,124,124,74,74,74,74,126,126,126,126,126,126], ‘LowerGroup’:[116、124、74、126、116、124、74、126、116、124、74、126、116、124、74、126、116、124、74、126], “时间”:[5,15,15,15,15,5,15,15,15,15,15,15,5,15,15,15,15

可复制数据帧
将熊猫作为pd导入
ul_data={'UpperGroup':[116,116,116,124,124,124,124,74,74,74,74,126,126,126,126,126,126],
‘LowerGroup’:[116、124、74、126、116、124、74、126、116、124、74、126、116、124、74、126、116、124、74、126],
“时间”:[5,15,15,15,15,5,15,15,15,15,15,15,5,15,15,15,15,15]}
ul=pd.数据帧(ul_数据)
jg_data={'Job':[1,2,3,4,5,6,7,8,9,10,11,12,13],
“组”:[116.0、116.0、116.0、116.0、116.0、116.0、124.0、124.0、74.0、74.0、126.0、126.0]}
jg=pd.数据帧(jg_数据)
研究
  • 我已经回顾了搜索中的几个问题,但它们似乎并不太合适,我只是想不出一种方法来把它们全部结合起来。
  • 已考虑合并/加入
  • 已考虑
    map

    • 这里有一种方法可以获得想要的结果

      ul.set_index(['UpperGroup', 'LowerGroup'])['Time'].unstack().reindex(index=jg['Group'], columns=jg['Group'])
      
      输出:

      Group  116.0  116.0  116.0  116.0  116.0  116.0  124.0  124.0  74.0   74.0   74.0   126.0  126.0
      Group                                                                                           
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      124.0     15     15     15     15     15     15      5      5     15     15     15     15     15
      124.0     15     15     15     15     15     15      5      5     15     15     15     15     15
      74.0      15     15     15     15     15     15     15     15      5      5      5     15     15
      74.0      15     15     15     15     15     15     15     15      5      5      5     15     15
      74.0      15     15     15     15     15     15     15     15      5      5      5     15     15
      126.0     15     15     15     15     15     15     15     15     15     15     15      5      5
      126.0     15     15     15     15     15     15     15     15     15     15     15      5      5
      
      Group     116.0                     124.0     74.0          126.0    
      Job          1   2   3   4   5   6     7   8     9   10  11    12  13
      Group Job                                                            
      116.0 1       5   5   5   5   5   5    15  15    15  15  15    15  15
            2       5   5   5   5   5   5    15  15    15  15  15    15  15
            3       5   5   5   5   5   5    15  15    15  15  15    15  15
            4       5   5   5   5   5   5    15  15    15  15  15    15  15
            5       5   5   5   5   5   5    15  15    15  15  15    15  15
            6       5   5   5   5   5   5    15  15    15  15  15    15  15
      124.0 7      15  15  15  15  15  15     5   5    15  15  15    15  15
            8      15  15  15  15  15  15     5   5    15  15  15    15  15
      74.0  9      15  15  15  15  15  15    15  15     5   5   5    15  15
            10     15  15  15  15  15  15    15  15     5   5   5    15  15
            11     15  15  15  15  15  15    15  15     5   5   5    15  15
      126.0 12     15  15  15  15  15  15    15  15    15  15  15     5   5
            13     15  15  15  15  15  15    15  15    15  15  15     5   5
      
      进一步说:

      ul.set_index(['UpperGroup', 'LowerGroup'])['Time']\
        .unstack()\
        .reindex(index=jg['Group'], columns=jg['Group'])\
        .set_axis(pd.MultiIndex.from_frame(jg[['Group', 'Job']]))\
        .set_axis(pd.MultiIndex.from_frame(jg[['Group', 'Job']]), axis=1)
      
      输出:

      Group  116.0  116.0  116.0  116.0  116.0  116.0  124.0  124.0  74.0   74.0   74.0   126.0  126.0
      Group                                                                                           
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      116.0      5      5      5      5      5      5     15     15     15     15     15     15     15
      124.0     15     15     15     15     15     15      5      5     15     15     15     15     15
      124.0     15     15     15     15     15     15      5      5     15     15     15     15     15
      74.0      15     15     15     15     15     15     15     15      5      5      5     15     15
      74.0      15     15     15     15     15     15     15     15      5      5      5     15     15
      74.0      15     15     15     15     15     15     15     15      5      5      5     15     15
      126.0     15     15     15     15     15     15     15     15     15     15     15      5      5
      126.0     15     15     15     15     15     15     15     15     15     15     15      5      5
      
      Group     116.0                     124.0     74.0          126.0    
      Job          1   2   3   4   5   6     7   8     9   10  11    12  13
      Group Job                                                            
      116.0 1       5   5   5   5   5   5    15  15    15  15  15    15  15
            2       5   5   5   5   5   5    15  15    15  15  15    15  15
            3       5   5   5   5   5   5    15  15    15  15  15    15  15
            4       5   5   5   5   5   5    15  15    15  15  15    15  15
            5       5   5   5   5   5   5    15  15    15  15  15    15  15
            6       5   5   5   5   5   5    15  15    15  15  15    15  15
      124.0 7      15  15  15  15  15  15     5   5    15  15  15    15  15
            8      15  15  15  15  15  15     5   5    15  15  15    15  15
      74.0  9      15  15  15  15  15  15    15  15     5   5   5    15  15
            10     15  15  15  15  15  15    15  15     5   5   5    15  15
            11     15  15  15  15  15  15    15  15     5   5   5    15  15
      126.0 12     15  15  15  15  15  15    15  15    15  15  15     5   5
            13     15  15  15  15  15  15    15  15    15  15  15     5   5