【问题标题】:Splitting values in a particular cell into rows in a data frame将特定单元格中的值拆分为数据框中的行
【发布时间】:2018-11-24 13:57:34
【问题描述】:

我正在尝试将数据帧操作为输出数据帧格式。特定单元格中有多个值,以“,”分隔。当我使用.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

【问题讨论】:

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

标签: python pandas numpy dataframe


【解决方案1】:
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      

【讨论】:

    猜你喜欢
    • 2018-11-16
    • 2021-06-05
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多