Pandasデータフレームでのランダムな行選択 質問する

Pandasデータフレームでのランダムな行選択 質問する

Pandas の DataFrame からランダムな行を選択する方法はありますか。

some(x, n)R では、car パッケージを使用すると、 head に似ていますが、この例では x からランダムに 10 行を選択する便利な関数があります。

スライスのドキュメントも確認しましたが、同等のものはないようです。

アップデート

現在バージョン20を使用しています。サンプルメソッドがあります。

df.sample(n)

ベストアンサー1

パンダバージョン0.16.1以降では、DataFrame.sample メソッド組み込み:

import pandas

df = pandas.DataFrame(pandas.np.random.random(100))

# Randomly sample 70% of your dataframe
df_percent = df.sample(frac=0.7)

# Randomly sample 7 elements from your dataframe
df_elements = df.sample(n=7)

上記のどちらのアプローチでも、次の操作を実行することで残りの行を取得できます。

df_rest = df.loc[~df.index.isin(df_percent.index)]

のコメントに従ってPedram、再現可能なサンプルを取得したい場合は、random_stateパラメータを渡します。

df_percent = df.sample(frac=0.7, random_state=42)

おすすめ記事