データフレームがありますが、既存のデータフレームに基づいて新しい行を追加したいと思います。各IDには、親から継承する独自のグループがあります。しかし、親IDを新しいIDにし、その子に基づくグループを追加するデータフレームに新しい行を追加したいと思います。
例えば:
ID | Parent | Group
1001 | 2345 | 1
2001 | 3456 | 1
2002 | 3456 | 1
2003 | 3456 | 1
3001 | 4567 | 2
3002 | 4567 | 2
4012 | 5678 | 3
5123 | 6789 | 3
期待される結果:
ID | Parent | Group
1001 | 2345 | 1
2001 | 3456 | 1
2002 | 3456 | 1
2003 | 3456 | 1
3001 | 4567 | 2
3002 | 4567 | 2
4012 | 5678 | 3
5123 | 6789 | 3
2345 | 2345 | 1
3456 | 3456 | 1
4567 | 4567 | 2
5678 | 5678 | 3
6789 | 6789 | 3
私はあなたが必要と考えているconcat
とDataFrame.assign
上書き列のID
ことでParent
とDataFrame.drop_duplicates
、リスト内の指定された列によって削除重複の:
df1 = df.assign(ID = df['Parent']).drop_duplicates(['Parent','Group'])
df2 = pd.concat([df, df1], ignore_index=True)
print (df2)
ID Parent Group
0 1001 2345 1
1 2001 3456 1
2 2002 3456 1
3 2003 3456 1
4 3001 4567 2
5 3002 4567 2
6 4012 5678 3
7 5123 6789 3
8 2345 2345 1
9 3456 3456 1
10 4567 4567 2
11 5678 5678 3
12 6789 6789 3
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加