データフレームに疎のデータがあるとします。どのようにしてそれから疎な行列を作り、どのモデルで予測に使うことができますか?パンダのデータフレームからスパース行列を作成する方法は?
1
A
答えて
1
はあなたがto_sparse(0)
と、それはスパース作ることができるデータフレームdf
df = pd.DataFrame(np.zeros((10, 10)))
df.iloc[5, 5] = 1
df
0 1 2 3 4 5 6 7 8 9
0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
5 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Memmory Usage: 880
を考えてみましょう。
最初の引数は、負担する値です。
d1 = df.to_sparse(0)
d1
0 1 2 3 4 5 6 7 8 9
0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
5 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Memmory Usage: 88
メモリフットプリントは、サイズの10分の1です。
0
この回答は、データを可能な限りスパースに保ち、メモリの問題を回避します。 csr_matrixは、モデリングのためにscipyとsklearnで使用できる標準の疎行列形式です。
import pandas as pd
from scipy import sparse
df = pd.DataFrame({'rowid':[1,2,3,4,5], 'val1':[1, 1, 0, 0, 0], 'val2':[1, 0, 0, 1, 0]})
print 'Input data frame\n{0}'.format(df)
print 'DataFrame to a sparse matrix'
df_as_sparse_matrix = sparse.csr_matrix(df.as_matrix())
print df_as_sparse_matrix.todense()
関連する問題
- 1. scipyスパース行列からスパースRDDを作成
- 2. 次の形式でパンダのデータフレームを作成する方法行
- 3. データフレームのXGBスパース行列
- 4. スパースベクトルのリストからスパース行列を作成する
- 5. パンダでlazy_evaluatedデータフレーム列を作成する方法
- 6. スパース行列をスパース行列に変換する方法R
- 7. パンダのデータフレームから列名、行名、および値のリストを作成する方法は?
- 8. Pythonでスパース行列を作成する
- 9. つぶやきからスパース行列を作成する
- 10. 辞書からスパース行列を作成する
- 11. パンダでシリーズからnデータフレームを作る方法は?
- 12. データフレームから正方行列を作成する
- 13. rデータフレーム内の列から隣接行列を作成する
- 14. ストリングのリストからパンダのデータフレームを作成する
- 15. pandasデータフレームの文字列式からダミー列を作成する方法は?
- 16. Rのデータフレームから行列に行をコピーする方法は?
- 17. パンダ:特定の列のみから新しいデータフレームを作成する
- 18. スパース行列を使ってスライディングウィンドウの特徴を作る方法
- 19. データフレームから行列を作成するには?
- 20. パンダのデータフレームのタイムスタンプから月を抽出する方法は?
- 21. パンダの時系列データフレームから季節データフレームを生成するための「ピジョンソニック」方法
- 22. Pythonでスパース行列をスパース行列に追加するには?
- 23. パンダはパンダのデータフレームの列
- 24. パンダのデータフレームの行操作
- 25. パンダのデータフレーム列の列からのメッセージ
- 26. 圧縮スパース列(CSC)または圧縮スパース行(CSR)スパース行列?
- 27. パンダのデータフレームをループする方法は?
- 28. パンダでは、別のデータフレームに基づいてデータフレームから行を削除する方法はありますか?
- 29. 文字列を使用してパンダのデータフレームを作成する
- 30. パンダのデータフレームにカウントの列を作成する