2017-07-18 137 views
1

大家好,因此使用此以前linkPython的分组列值到一个值

我试图使用GROUPBY整合进行值的列:

hp = hp[hp.columns[:]].groupby('LC_REF').apply(lambda x: ','.join(x.dropna().astype(str))) 
#what I have 
    22   23  24  LC_REF 
    TV  | WATCH | HELLO | 2C16 
    SCREEN | SOCCER | WORLD | 2C16 
    TEST  | HELP | RED | 2C17 
    SEND  |PLEASE |PARFAIT | 2C17 
#desired output 
22 | TV,SCREEN 
23 | WATCH, SOCCER 
24 | HELLO, WORLD 
25 | TEST, SEND 
26 | HELP,PLEASE 
27 | RED, PARFAIT 

或某种变异,其中列22 ,23,24由LC_REF组合并分组。我现在的代码将第22列全部变成一行,第23列全部变成一行,等等。我非常亲近,我能感觉到它!任何帮助表示赞赏

回答

1

看来你需要:

df = hp.groupby('LC_REF') 
     .agg(lambda x: ','.join(x.dropna().astype(str))) 
     .stack() 
     .rename_axis(('LC_REF','a')) 
     .reset_index(name='vals') 
print (df) 
    LC_REF a   vals 
0 2C16 22  TV,SCREEN 
1 2C16 23 WATCH,SOCCER 
2 2C16 24 HELLO,WORLD 
3 2C17 22  TEST,SEND 
4 2C17 23 HELP,PLEASE 
5 2C17 24 RED,PARFAIT 
+0

,现在你已经救了我两次!谢谢! – codeninja

相关问题