Python#2中的分组特征矩阵-后续

Python#2中的分组特征矩阵-后续,python,excel,pandas,feature-extraction,Python,Excel,Pandas,Feature Extraction,和以前没什么不同。我们可以从样本数据开始: DataFrame1: Name No. Comment Bob 2123320 Doesn't Matter Joe 2832883 Whatever John 2139300 Irrelevant Bob 2123320 Something John

和以前没什么不同。我们可以从样本数据开始:

DataFrame1:

Name         No.        Comment    
Bob        2123320     Doesn't Matter   
Joe        2832883     Whatever           
John       2139300     Irrelevant        
Bob        2123320     Something          
John       2234903     Regardless
数据框架2:

Name          No.          Report    
Bob        2123320         Great 
Joe        2832883         Solid           
John       2139300        Awesome        
Bob        2123320         Good          
John       2234903        Perfect
我正在寻找一种方法来创建一个新的excel文件,该文件如下所示(预期结果):

(注意:它不需要有编号的标题,我这样做只是为了清楚和以后的解释)

基本上,我所做的是,非常类似于另一个,查找每个名称,然后查找每个名称,看看它有多少不同的编号。然后,它会选择那些拥有一定数量不同号码的人现在,我有一套“评论”和“报告”要找 ({无关,无所谓,无所谓}和{Awesome,Solid,Perfect}分别[注:这只是评论/报告的一个子集])对于这些,如果出现,我希望有一个1或0,但仅针对每个编号。换句话说,我希望每个编号都有一个“组”列,标题为{无关,无所谓}和{Awesome,Solid,Perfect}对于每个值,如果该特定编号的人员出现,我希望为1,如果没有出现,则为0。

例如,在这个矩阵中,我们只看到John,因为他是唯一一个拥有超过1个不同编号的人。在第一组列中,只有无关和可怕的列的值为1,而其他列的值为0,而在第二组中,只有无关和完美的列的值为1。它只是列出了我想要的所有评论/报告({不相关,不管怎样}和{很棒,可靠,完美}),只列出一个编号,然后找出每个编号是否出现(1或0)。然后,它在一个新的“组”列中重复所有所需的注释/报告,以获得一个新编号,并找到现在出现的注释/报告

如果有什么不清楚的地方请告诉我,我真的非常感谢你的帮助

谢谢。

试试:

df_out = df_out[df_out.groupby(['Name'])['No.'].transform(lambda x: x.nunique() > 1)]\
   .set_index(['Name','No.'])['Comment'].str.get_dummies()\
   .reindex(df_out.Comment, fill_value=0, axis=1)\
   .sum(level=[0,1])\
   .unstack()\
   .swaplevel(0,1,axis=1)\
   .sort_index(1)

print(df_out)
输出:

No.     2139300                                                                \
Comment Awesome Doesn't Matter Good Great Irrelevant Perfect Regardless Solid   
Name                                                                            
John          1              0    0     0          1       0          0     0   

No.                        2234903                                       \
Comment Something Whatever Awesome Doesn't Matter Good Great Irrelevant   
Name                                                                      
John            0        0       0              0    0     0          0   

No.                                                  
Comment Perfect Regardless Solid Something Whatever  
Name                                                 
John          1          1     0         0        0  

​

难以置信的惊人!多谢各位much@A.Code.1不客气。很抱歉,我让您重新发布,但有时看到所需的输出比文字更有意义。编码快乐,再次感谢。我真的很喜欢你的编码方法和描述。我还有一个问题,我还不清楚是否与当时的一个类似问题有关。你觉得你能试一下吗嘿,伙计。我真的很抱歉在这么短的时间内用这么多问题来轰炸你们,但我决定尝试给这个问题增加另一个维度。我决定创建一个新的帖子,明确描述输入和输出,如果您有时间查看,我将不胜感激:
No.     2139300                                                                \
Comment Awesome Doesn't Matter Good Great Irrelevant Perfect Regardless Solid   
Name                                                                            
John          1              0    0     0          1       0          0     0   

No.                        2234903                                       \
Comment Something Whatever Awesome Doesn't Matter Good Great Irrelevant   
Name                                                                      
John            0        0       0              0    0     0          0   

No.                                                  
Comment Perfect Regardless Solid Something Whatever  
Name                                                 
John          1          1     0         0        0  

​