向左折叠值,Python/Pandas

2024-10-02 00:23:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的数据集有时会在我动手之前删除值。删除某个值时,通常会将其替换为my NaN或“”。将值折叠到左边最有效的方法是什么

具体来说,我正试图扭转这种局面:


          1       2        3         4
bill    sjd              meoip  
nick            tredsn              bana
fred    ccrw    aaaa     cretwew    bbbbb
tom                      eomwepo     
jill            dew                 weaedf      

对此:

          1         2      3         4
bill    sjd       meoip     
nick    tredsn    bana      
fred    ccrw      aaaa    cretwew   bbbbb
tom     eomwepo         
jill    dew       weaedf        

列标题不重要,唯一重要的是没有前导的空单元格和中间没有空单元格

我更愿意以一种非迭代的方式来做这件事,因为df可能相当大


Tags: frednicktombillaaaadewjillbana
1条回答
网友
1楼 · 发布于 2024-10-02 00:23:39

试试这个,如果那些空格是“”,那么使用mask to np.nan,否则您不需要maskfillna

df.mask(df == '').apply(lambda x: pd.Series(x.dropna().values), axis=1).fillna('')

输出:

           0      1        2     3
bill     sjd  meojp               
nick  tredsn   bana               
fred    ccrw   aaaa  cretwew  bbbb
tom   eomwep                      
jill     dew  weadf               

相关问题 更多 >

    热门问题