2017-10-11 310 views
1

结合在大熊猫数据帧行如何从下面的数据框达到了预期的结果通过遍历

df 
      col_1    col_2 col_3 
    0 Non-Saved www.google.com 20,567 
    1    www.facebook.com  
    2    www.linkedin.com  
    3  Saved  www.Quora.com 6,337 
    4    www.gmail.com  

预期结果:

  col_1    col_2 col_3 
    0 Non-Saved  www.google.com 20,567 
        www.facebook.com 
        www.linkedin.com 
    1 Saved   www.Quora.com 6,337 
         www.gmail.com 

从5行2列由合并空字符串col_1和col_3。此外,将col_2中的值连接到一个单元格中。任何人都可以通过用户定义的函数来帮助我做到这一点吗?

回答

2

让我们尝试:

df = df.apply(lambda x: x.str.strip()).replace('',np.nan) 

df.groupby(df.col_1.ffill())\ 
    .agg({'col_2': lambda x: ' '.join(x) ,'col_3':'first'})\ 
    .reset_index() 

输出:

 col_1            col_2 col_3 
0 Non-Saved www.google.com www.facebook.com www.linkedin.com 20,567 
1  Saved      www.Quora.com www.gmail.com 6,337 
+0

DF = df.apply。(拉姆达X:x.str.strip())替换( '',np.nan) 给出一个错误:'AttributeError:('只能使用.str访问器和字符串值,它们在pandas'中使用np.object_ dtype','在'NumberOfRequests'索引处发生')' –

+0

是的,但看到这个[SO Post]( https://stackoverflow.com/a/34324332/6361531) –

+0

你可以试试'\ n'.join(x) –