【问题标题】:Pandas re-arange flat hierarchy from bottom up to top down熊猫从下到上重新排列平面层次结构
【发布时间】:2019-10-10 03:33:47
【问题描述】:

我面临重新安排自下而上构建的扁平不平衡层次结构的挑战,即将子元素映射到父元素和父元素的父元素等等,映射到自上而下的结构,即从根开始并填充结构向下。因为树是不平衡的,有些末端的层次结构比其他的低。

例子:

来源:

Child|Parent+0|Parent+1|Parent+2|Parent+3|Parent+4
Julia|Peter|Alice|Paul|Sara|Bianca  
Chris|Jen|Bob|Fred|Bianca|NaN  
Ben|John|Bianca|NaN|NaN  

目标:

Parent-0|Parent-1|Parent-2|Parent-3|Parent-4|Child  
Bianca|Sara|Paul|Alice|Peter|Julia  
Bianca|Fred|Bob|Jen|NaN|Chris  
Bianca|John|NaN|NaN|NaN|Ben  

我尝试了不同的想法,但到目前为止都没有运气。 感谢您的帮助或想法。

【问题讨论】:

  • 你能分享一下你尝试了什么吗?
  • 我尝试了一个 for 循环结合 df.apply(lambda x:) 和辅助变量计算父列和填充父列的数量。

标签: pandas


【解决方案1】:

set_index 并翻转值。然后利用cs95从Divakar修改的justify函数。

df = df.set_index('Child').loc[:, ::-1]

pd.DataFrame(justify(df.to_numpy(), invalid_val=np.NaN), 
             index=df.index, 
             columns=[f'Parent-{i}' for i in range(0, df.shape[1])])

      Parent-0 Parent-1 Parent-2 Parent-3 Parent-4
Child                                             
Julia   Bianca     Sara     Paul    Alice    Peter
Chris   Bianca     Fred      Bob      Jen      NaN
Ben     Bianca     John      NaN      NaN      NaN

【讨论】:

    猜你喜欢
    • 2017-10-18
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 2010-09-24
    相关资源
    最近更新 更多