我希望动态展平父-子层次结构数据帧
注意事项:
输入示例:
import pandas as pd
import numpy as np
pd.options.display.max_columns = None
pd.options.display.max_rows = None
pd.options.display.expand_frame_repr = False
pd.options.mode.chained_assignment = None
df = pd.DataFrame(
{
"child": ["xyz", "opr", "axz", "asd", "asd", "zxc", "zxc", "zxc"],
"parent": [np.nan, "xyz", "xyz", "opr", "opr", "opr", "axz", "xyz"],
}
)
print(df)
预期输出:
level_0 level_1 leaf
0 xyz opr asd
1 xyz opr asd
2 xyz opr zxc
3 xyz axz zxc
4 xyz NaN zxc
leaf是
child
列中不存在的元素完成后,我将在每次传递时迭代添加一个新的父列,直到所有父列都为NaN。为了确保最后一级包含最终的grand_父级,还需要另一个技巧:如果父列包含NaN,则必须将值与前一列进行切换。代码:
正如预期的那样:
并且应该接受任意数量的级别
相关问题 更多 >
编程相关推荐