我想sample為資料幀的索引的每個值獨立應用 Pandas 的函式。這可以通過這樣的for回圈來完成:
import pandas
df = pandas.DataFrame({'something': [3,4,2,2,6,7], 'n': [1,1,2,2,3,3]})
df.set_index(['n'], inplace=True)
resampled_as_I_want_df = df[0:0]
for i in sorted(set(df.index)):
resampled_as_I_want_df = resampled_as_I_want_df.append(
df.loc[i].sample(frac=1, replace=True),
)
print(resampled_as_I_want_df)
讓我以人性化的方式解釋這一點。df資料框如下所示:
something
n
1 3
1 4
2 2
2 2
3 6
3 7
現在我們看到有三個“索引組”,它們的值分別1是2和3。我想要做的是以sample新資料幀將具有相同索引的方式應用該函式,沒有隨機抽樣,并且在每個組內執行抽樣,就好像它們是獨立的資料幀一樣。
有沒有辦法避免for回圈?對于大型資料幀,這是一個瓶頸。
uj5u.com熱心網友回復:
使用df.groupby(level=0).sample(frac=1, replace=True).
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/414810.html
標籤:
