3
我有這樣一個數據幀:如何在大熊貓的羣體進行操作
ID A B Area
0 1 A1 B1 1.0
1 2 A1 B2 2.0
2 3 A1 B1 0.5
3 4 A1 B2 1.0
4 5 A2 B3 2.0
5 6 A2 B4 6.0
我想出去是這樣的:
ID A B Area B as % of A
0 1 A1 B1 1.0 0.333
1 2 A1 B2 2.0 0.666
2 3 A1 B1 0.5 0.333
3 4 A1 B2 1.0 0.666
4 5 A2 B3 2.0 0.25
5 6 A2 B4 6.0 0.75
目的是爲了添加新列其中給出每個房間類型B佔據的每層A的面積的比例(注意這是按房間類型,因此對於A和B的每個唯一組合,輸出欄中的值應該是相同的)。
到目前爲止,我所擁有的是:
>>> grouped = df.groupby(['A','B'])
>>> area_proportion = lambda x: (x['Area']/x['Area'].sum())
>>> grouped.transform(area_proportion)
但是,這似乎是治療lambda作爲由原始數據框的索引(我認爲這將是按組),因爲它只是返回:
Out[142]:
ID Area
0 1 1.0
1 2 2.0
2 3 0.5
3 4 1.0
4 5 2.0
5 6 6.0
我明顯地誤解了某些東西或者錯過了文檔的重要部分。我應該如何使用groupby來獲得我需要的結果?
你看看%不正確 – EdChum
嗯,我想我是的事實,有重複的條目,以便他們應該等同對待,而不是單獨的條目 – EdChum
這是正確的混淆。 –