我有以下資料框架:
Group from to
1 2 1
1 1 2
1 3 2
1 3 1
2 1 4
2 3 1
2 1 2
2 3 1
我想創建一個第四列,計算每組中唯一的組合(從,到),并洗掉每組中任何重復的組合(只留下一個)
預期輸出:
組 from to weight
1 2 1 1
1 1 2 1
1 3 2 1
1 3 1 1
2 1 4 1
2 3 1 2
2 1 2 1
在預期的輸出中,第2組中從3到1的第2行被洗掉,因為它是重復的。
uj5u.com熱心網友回復:
在你的例子中,我們只需要groupby與size
out = df.groupby(df.columns.tolist()).size().to_frame(name='weight').reset_index()
Out[258]。
組 from 到 weight
0 1 1 2 1
1 1 2 1 1
2 1 3 1 1
3 1 3 2 1
4 2 1 2 1
5 2 1 4 1
6 2 3 1 2
uj5u.com熱心網友回復:
你可以用.groupby()對這3列進行分組,并通過GroupBy.size()取其大小,如下:
df_out = df. groupby(['Group', 'from', 'to'], sort=False) 。 size().reset_index(name='weight')
結果:
print(df_out)
組from到重量
0 1 2 1 1
1 1 1 2 1
2 1 3 2 1
3 1 3 1 1
4 2 1 4 1
5 2 3 1 2
6 2 1 2 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/309482.html
標籤:
