RDataFrame-複数の用語を含む列の1つのホットエンコーディング

tuxdna

複数の値(コンマ区切り)を持つ列を持つデータフレームがあります:

mydf <- structure(list(Age = c(99L, 10L, 40L, 15L),
                       Info = c("good, bad, sad", "nice, happy, joy", "NULL", "okay, nice, fun, wild, go"),
                       Target = c("Boy", "Girl", "Boy", "Boy")), 
                  .Names = c("Age", "Info", "Target"),
                  row.names = c(NA, 4L),
                  class = "data.frame")

> mydf
  Age                      Info Target
1  99            good, bad, sad    Boy
2  10          nice, happy, joy   Girl
3  40                      NULL    Boy
4  15 okay, nice, fun, wild, go    Boy

情報列をワンホットエンコードされたに分割し、ターゲット列のほかに結果を追加したいと思います。次に例を示します。

  Age                      Info Target good bad sad nice ... NULL ..
1  99            good, bad, sad    Boy    1   1   1   0        0
2  10          nice, happy, joy   Girl    0   0   0   1        0
3  40                      NULL    Boy    0   0   0   0        1
4  15 okay, nice, fun, wild, go    Boy    0   0   0   0        0

Pythonでは、以下のようなことを実行して辞書を取得し、それを使用して列を割り当てることができます。

In [1]: import itertools

In [2]: values = ["good, bad, sad", "nice, happy, joy", "NULL",  "okay, nice, fun, wild, go"]

In [3]: terms = list(itertools.chain(*[v.split(", ") for v in values]))

In [4]: dictionary = {v:k for k,v in enumerate(terms)}

In [6]: dictionary
Out[6]: 
{'NULL': 6, 'bad': 1,
 'fun': 9, 'go': 11, 'good': 0, 'happy': 4,
 'joy': 5, 'nice': 8, 'okay': 7, 'sad': 2, 'wild': 10}

これまでのところ、Rでこれを行うことができます

> lapply(mydf["Info"], function(x) { strsplit(x, ", ") } )
$Info
$Info[[1]]
[1] "good" "bad"  "sad" 

$Info[[2]]
[1] "nice"  "happy" "joy"  

$Info[[3]]
[1] "NULL"

$Info[[4]]
[1] "okay" "nice" "fun"  "wild" "go"  

Rで辞書に変換し、One-Hot-Encodingの列に変換する方法がわかりません。

どうすればこれを解決できますか?

akrun

1つのオプションはあるmtabulateからqdapTools分割後による「情報」欄,

library(qdapTools)
cbind(mydf, mtabulate(strsplit(mydf$Info, ", ")))
#Age                      Info Target bad fun go good happy joy nice NULL okay sad wild
#1  99            good, bad, sad    Boy   1   0  0    1     0   0    0    0    0   1    0
#2  10          nice, happy, joy   Girl   0   0  0    0     1   1    1    0    0   0    0
#3  40                      NULL    Boy   0   0  0    0     0   0    0    1    0   0    0
#4  15 okay, nice, fun, wild, go    Boy   0   1  1    0     0   0    1    0    1   0    1

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

RdataFrameの最後の列の名前を変更する

分類Dev

NAのシフトをリードするRDataFrame

分類Dev

2つの日付の間の日曜日を除く日数をカウントし、RDataFrameに新しい列を作成します

分類Dev

列内の複数のカテゴリデータを1つのホットエンコーディング

分類Dev

python-複数の用語を含む列のバイナリエンコーディング

分類Dev

1つの列を1つのホットエンコーディング

分類Dev

複数の同様の列を持つパンダのワンホットエンコーディング

分類Dev

複数の値を持つデータフレーム文字列列からの1つのホットエンコーディング

分類Dev

複数の列に出現する単語のワンホットエンコーディング

分類Dev

Verilogの1つのホットエンコーディング

分類Dev

(1つではない)ホットエンコーディングを同じ行に複数の値を持つ列に変換する方法

分類Dev

混合データの多くの列を1つのホットエンコーディング

分類Dev

パンダの辞書の列から1つのホットエンコーディングを作成する

分類Dev

複数のID、大きなデータフレーム内の値を持つ1つのホットエンコーディング

分類Dev

1つのホットエンコーディング文字

分類Dev

1つのホットエンコーディング機能

分類Dev

複数の列にわたるワンホットエンコーディング-ただし、1つのグループとして

分類Dev

rデータセット内の1つの変数のワンホットエンコーディング

分類Dev

1つのホットエンコーディングsklearnの後に列の名前を保持する方法は?

分類Dev

Pythonの行ごとに複数のカテゴリ値を持つ1つのホットエンコーディング

分類Dev

1つのホットエンコーディング単一カテゴリ数値列

分類Dev

numpyを使用した1つのホットエンコーディング

分類Dev

pandasDataFrameの列の文字列の1つのホットエンコーディング

分類Dev

複合フィールドの1つのホットエンコーディング

分類Dev

複数のエンコーディングを使用して列を含むテーブルを生成します

分類Dev

CFSMの状態の1つのホットエンコーディング

分類Dev

ScalaのRDDでの1つのホットエンコーディング

分類Dev

複数の1が連続しているpysparkのワンホットエンコーディング

分類Dev

複数のホストバインディングを1つのデコレータに結合します

Related 関連記事

  1. 1

    RdataFrameの最後の列の名前を変更する

  2. 2

    NAのシフトをリードするRDataFrame

  3. 3

    2つの日付の間の日曜日を除く日数をカウントし、RDataFrameに新しい列を作成します

  4. 4

    列内の複数のカテゴリデータを1つのホットエンコーディング

  5. 5

    python-複数の用語を含む列のバイナリエンコーディング

  6. 6

    1つの列を1つのホットエンコーディング

  7. 7

    複数の同様の列を持つパンダのワンホットエンコーディング

  8. 8

    複数の値を持つデータフレーム文字列列からの1つのホットエンコーディング

  9. 9

    複数の列に出現する単語のワンホットエンコーディング

  10. 10

    Verilogの1つのホットエンコーディング

  11. 11

    (1つではない)ホットエンコーディングを同じ行に複数の値を持つ列に変換する方法

  12. 12

    混合データの多くの列を1つのホットエンコーディング

  13. 13

    パンダの辞書の列から1つのホットエンコーディングを作成する

  14. 14

    複数のID、大きなデータフレーム内の値を持つ1つのホットエンコーディング

  15. 15

    1つのホットエンコーディング文字

  16. 16

    1つのホットエンコーディング機能

  17. 17

    複数の列にわたるワンホットエンコーディング-ただし、1つのグループとして

  18. 18

    rデータセット内の1つの変数のワンホットエンコーディング

  19. 19

    1つのホットエンコーディングsklearnの後に列の名前を保持する方法は?

  20. 20

    Pythonの行ごとに複数のカテゴリ値を持つ1つのホットエンコーディング

  21. 21

    1つのホットエンコーディング単一カテゴリ数値列

  22. 22

    numpyを使用した1つのホットエンコーディング

  23. 23

    pandasDataFrameの列の文字列の1つのホットエンコーディング

  24. 24

    複合フィールドの1つのホットエンコーディング

  25. 25

    複数のエンコーディングを使用して列を含むテーブルを生成します

  26. 26

    CFSMの状態の1つのホットエンコーディング

  27. 27

    ScalaのRDDでの1つのホットエンコーディング

  28. 28

    複数の1が連続しているpysparkのワンホットエンコーディング

  29. 29

    複数のホストバインディングを1つのデコレータに結合します

ホットタグ

アーカイブ