美文网首页
pandas dataframe list(列表)数据列拆分成多

pandas dataframe list(列表)数据列拆分成多

作者: 苦海飘摇 | 来源:发表于2021-05-19 16:53 被阅读0次

    需要把下面的dataframe里面列的数据类型是list的列拆分成多个行:

    df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]})
    df
    Out[458]: 
       A       B
    0  1  [1, 2]
    1  2  [1, 2]
    

    所用代码如下:

    (1)如果你要拆分的dataframe只有两列,那么使用下面的方法(亲测非常高效):

    df=pd.DataFrame({'A':df.A.repeat(df.B.str.len()),'B':np.concatenate(df.B.values)})
    df
    Out[465]: 
       A  B
    0  1  1
    0  1  2
    1  2  1
    1  2  2
    

    (2)如果要拆分的dataframe有多列,那么可能需要使用下面的方法(还没有尝试过,期待有机会尝试),需要使用到numpy:

    newvalues=np.dstack((np.repeat(df.A.values,list(map(len,df.B.values))),np.concatenate(df.B.values)))
    pd.DataFrame(data=newvalues[0],columns=df.columns)
       A  B
    0  1  1
    1  1  2
    2  2  1
    3  2  2
    

    参考:https://www.cjavapy.com/article/237/

    相关文章

      网友评论

          本文标题:pandas dataframe list(列表)数据列拆分成多

          本文链接:https://www.haomeiwen.com/subject/pbwpjltx.html