Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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_Pandas - Fatal编程技术网

python允许合并单元格/数据框内容

python允许合并单元格/数据框内容,python,pandas,Python,Pandas,我试图将输入数据格式化为下面提到的格式,我不确定如何实现,因为我对熊猫还不熟悉 以xlsx格式输入数据: 它被解析为下面的数据格式 作为pd进口熊猫 excel_file = 'sample.xlsx' ip_data_read = pd.read_excel(excel_file) ip_data_read["Test Case(ID / Brief Description)"] = ip_data_read["Test Case(ID / Brief Description)"].ffil

我试图将输入数据格式化为下面提到的格式,我不确定如何实现,因为我对熊猫还不熟悉

以xlsx格式输入数据:

它被解析为下面的数据格式

作为pd进口熊猫

excel_file = 'sample.xlsx'
ip_data_read = pd.read_excel(excel_file)
ip_data_read["Test Case(ID / Brief Description)"] = ip_data_read["Test Case(ID / Brief Description)"].ffill()
打印如下:

Test Case(ID / Brief Description)       Action / Step           Expected Result (Description)
       TC_001                                a                             b
       TC_001                                c                             d
       TC_001                                e                           NaN
       TC_001                                f                           NaN
       TC_001                              NaN                             g
       TC_002                              a11                        qwerty
       TC_002                              qqq                        mnbghd
       TC_002                              NaN                        cccc12
       TC_002                         qwwqwq33                           NaN
       TC_003                               a1                            b1
       TC_004                              NaN                            c2
       TC_005                              NaN                            d2
       TC_006                              NaN                            s2
       TC_007                               a3                            d4
       TC_099                          abcdefg                           NaN
       TC_100                                a                             b
       TC_100                                c                             d
       TC_100                                e                           NaN
       TC_100                                f                           NaN
       TC_100                              NaN                             g
       TC_101                               xx                            yy
       TC_101                               er                            gf
       TC_101                               vv                             i
我希望数据帧是这样的

Test Case(ID / Brief Description)       Steps           
       TC_001                            a,b            
                                         c,d            
                                         e              
                                         f              
                                         g               
       TC_002                         a11,qwerty                
       TC_002                         qqq,mnbghd                
       TC_002                         cccc12                    
       TC_002                         qwwqwq33   

       TC_003                          a1,b1                     
       TC_004                          c2                         
       TC_005                          d2                          
       TC_006                          s2                         
       TC_007                          a3,d4                     
       TC_099                          abcdefg  

       TC_100                          a,b            
                                       c,d            
                                       e              
                                       f              
                                        g
       TC_101                          xx ,yy                         
                                       er ,gf                         
                                       vv ,i    
例如,与TC_001关联的值/步骤应该给我一个字符串,如

   a,b            
     c,d            
     e              
     f              
     g 
与替换缺少的值一起使用:

s = df.pop('Expected Result (Description)').fillna('')
df['Steps'] = df.pop('Action / Step').fillna('').str.cat(s, sep=',').str.strip(',')
如果有许多列:

df1 = (df.set_index('Test Case(ID / Brief Description)')
        .apply(lambda x: ','.join(x.dropna()), axis=1)
        .reset_index())
样本

df = pd.DataFrame({'Test Case(ID / Brief Description)':range(4),
                   'Action / Step':[np.nan, np.nan,'a', 'd'],
                   'Expected Result (Description)':['s', np.nan, np.nan,'m']})
print (df)
   Test Case(ID / Brief Description) Action / Step  \
0                                  0           NaN   
1                                  1           NaN   
2                                  2             a   
3                                  3             d   

  Expected Result (Description)  
0                             s  
1                           NaN  
2                           NaN  
3                             m  

df1 = (df.set_index('Test Case(ID / Brief Description)')
        .apply(lambda x: ','.join(x.dropna()), axis=1)
        .reset_index(name='Steps'))
print (df1)
   Test Case(ID / Brief Description) Steps
0                                  0     s
1                                  1      
2                                  2     a
3                                  3   d,m

它工作得很好,但我有一个问题,当我给axis=1时,如果有不感兴趣的列也被合并,如何避免这种情况?@kbk-然后将
df.set_index('testcase(ID/short Description)')
更改为
df.set_index(['testcase(ID/short Description)','col1-nomt merged','col2 not merged',…]))
-如您所需添加列名称谢谢,现在它可以工作了,只是行没有合并成单个字符串,如本文最后一点所述questing@kbk-如果数据类似于
df=pd.DataFrame({'testcase(ID/简要描述)][1,1,2,2],'no merged':[1,2,3,4],'not merged2':[5,7,8,8],'Action/Step':[np.nan,np.nan,'a','d'],'Expected Result(Description):[s',np.nan,np.nan,'m']})打印(df)
预期输出是什么?我是通过df1.groupby('Test Case(ID/shortdescription)')['Steps']得到的。应用('.join)。重置索引()