首页 > 解决方案 > 将特定单元格中的值拆分为数据框中的行

问题描述

我正在尝试将数据框操作为输出数据框格式。特定单元格中有多个值,以“,”分隔。当我使用.stack()将多个值转换为行时,剩余的空单元格将填充NaN. 有没有通用的解决方案pandas来处理这个问题?

输入数据框:

   x1     y1        x2           x3          x4
   abc    x or y    v1,v2,v3     l1,l2,l3    self
   abc    z         no1,no2,no3  e1,e2,e3    self

输出数据框:

   x1    y1    x2     x3     x4
   abc   x     v1     l1     self
               v2     l2 
               v3     l3
         y     v1     l1     self
               v2     l2
               v3     l3
   abc   z     no1    e1     self
               no2    e2
               no3    e3

标签: pythonpandasnumpydataframe

解决方案


df.set_index(df.index).apply(lambda x: x.str.split(",").apply(pd.Series).stack()).reset_index(drop=True).fillna("")

输出:

    x1    x2   x3    x4
0  abc    v1   11  self
1         v2   12      
2         v3   13      
3  abc   no1   e1  self
4        no2   e2      
5        no3   e3      

推荐阅读