抚平与熊猫的亲子关系

问题描述 投票:2回答:2

[我是熊猫新手,正在寻找一种使用pandas或python简化多级父子关系的方法。我有一个csv文件,其中包含如下数据。

[对于每个孩子,我想从父母到孩子遍历。任何帮助都将受到赞赏。

输入

--------------------
Child,Parent,Country
--------------------
A,TOP LEVEL,GERMANY

B,A,USA

C,B,JAPAN

D,TOP LEVEL,INDIA

E,D,CHINA

输出

--------------------
HIERARCHY,COUNTRY
--------------------
A,GERMANY

A.B,USA

A.B.C,JAPAN

D,INDIA

D.E,CHINA
python pandas
2个回答
0
投票

这是使用groupby并使用groupby进行转换的一种方法>

itertools.accumulate

0
投票

这可以使用itertools.accumulate和有向图来完成,以防在原始DataFrame中不一定正确排序的情况。首先,我们需要修复DataFrame,以便from itertools import accumulate g = df.Parent.eq('TOP LEVEL').cumsum() (df.groupby(g, as_index=False).Child .transform(lambda i: [*accumulate(i, lambda x, y: f'{x}.{y}')]) .assign(COUNTRY=df.Country)) HIERARCHY COUNTRY 0 A GERMANY 1 A.B USA 2 A.B.C JAPAN 3 D INDIA 4 D.E CHINA 不是父级,并且使用国家/地区。

© www.soinside.com 2019 - 2024. All rights reserved.