我想從資料庫中按組對行進行采樣。但是每個樣本的大小必須與每組中的行數成正比。
它涉及在不同國家和不同年份實施的專案清單(這些是我的小組)。我想從串列中抽樣專案,與每個組中的專案總數成比例。
下表顯示了已實施專案的數量和比例。
因此,例如,我想從 2016 年在布基納法索實施的 10 個專案中抽取 2 個專案。
我正在嘗試使用.sample()函式和.groupby()函式,但我不知道如何將這兩個一起使用?

uj5u.com熱心網友回復:
如果df1是來自圖片的 DataFrame 并且df是原始 DataFrame 使用DataFrame.join:
df = df.join(df1['Percent of Project'],
on=['Initial Financial Year','Area of Intervention'])
然后使用GroupBy.applylambda 函式和DataFrame.sample:
f = lambda x: x.sample(x['Percent of Project'].iat[0])
df = (df.groupby(['Initial Financial Year','Area of Intervention'], group_keys=False)
.apply(f))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/383059.html
標籤:熊猫 pandas-groupby 样本
上一篇:如何從同一列添加兩個值?
