2016-06-28 19 views
4

パンダのデータフレームから少数の行を無作為にサンプリングする方法を知っています。私が行うことができ、行の割合を取得するには、その後、私はデータフレームDFを持っていたとしましょう:パンダのデータフレーム(行と列の両方)のランダムサンプリング

df_sample = df.sample(frac=0.007) 

しかし、私は必要なもの上記のデータフレームからランダム列以上ものようにランダムな行です。

Dfは現在56Kx8.5kです。 500と1000の両方を無作為にサンプリングする方法を500x1000と言いたいのですか?

私は1つのアプローチは、列名のリストを取得するには

df.columnsような何かを行うことだと思います。

次に、この列のリストのインデックスをランダムにサンプリングし、そのランダムなインデックスを使用して残りの列をフィルタリングしますか?

答えて

7

だけで対応する軸パラメータで、二回sampleを呼び出します。最初のもののために

df.sample(n=500).sample(n=1000, axis=1) 

、デフォルトでは軸= 0。

+0

cool。これを知らなかった。ちょうど2回呼び出すことで、我々はサンプル列を取得する同じ行(500)を持っていることを確認しますか? – Baktaawar

+0

質問を正しく理解していれば、 'df.sample(n = 500)'は500行と8.5k列のデータフレームを返します。 '.sample(n = 1000、axis = 1) 'を呼び出すデータフレームでは、以前に選択された500行と1000列の別のデータフレームが返されます。 – ayhan

+0

涼しい意味があります – Baktaawar

関連する問題