我有兩種類型dataframes的:如何創建與百分比大熊貓據幀一列,更
數據幀AID
:
AID FID ANumOfF
1 X 1
1 Y 5
2 Z 6
2 A 1
2 X 11
2 B 18
數據幀VID
:
VID FID VNumOfF
1A X 10
1A A 500
2A A 62
2A B 10
2A C 30
2A X 23
1 - 我希望在每個Dataframe中創建一個新列,以計算每個FID爲每個VID保留的%。因此,對於上面的例子中,結果將是以下幾點:
新的數據幀AID
:
AID FID ANumOfF PercentF
1 X 1 0.167 (1/6)
1 Y 5 0.833 (5/6)
2 Z 6 0.167 (6/36)
2 A 1 0.028
2 X 11 0.305
2 B 18 0.5
新的數據幀VID
:
VID FID VNumOfF PercentF
1A X 10 0.02
1A A 500 0.98
2A A 62 0.50
2A B 10 0.08
2A C 30 0.24
2A X 23 0.18
截至目前我知道下面的代碼給我每個AID/VID的總和:
AID.groupby('AID')['ANumFS'].sum()
VID.groupby('VID')['VNumFS'].sum()
2-在此之後,我想創建一個新的數據幀,查看存在的每對VID和AID的「重疊」。它會總結他們都會分享的百分比。因此,對於上述製造的新dataframes,我們會得到如下:
由於AID=1
和VID=1A
唯一的共同點FID=X
,重疊計算爲:0.167*0.02 = 0.00334
AID=2
和VID=2A
有共同FIDs A, B and X
,所以重疊的計算會是:0.028*0.5 + 0.305*0.18 + 0.5*0.08 = 0.1089
AID VID Overlap
1 1A 0.00334
1 2A 0.03006
2 1A 0.03354
2 2A 0.1089
我該如何做到這一點?
到目前爲止你的代碼是什麼? – Felix