Saya memiliki dataset dengan beberapa baris yang berisi jawaban tunggal dan yang lain memiliki banyak jawaban. Seperti itu:

       year  length  Animation
0      1971     121       1,2,3
1      1939      71       1,3
2      1941       7       0,2
3      1996      70       1,2,0
4      1975      71       3,2,0

Dengan jawaban tunggal saya berhasil membuat heatmap menggunakan df.corr (), tetapi saya tidak tahu apa pendekatan terbaik untuk beberapa jawaban jawaban.

Saya dapat membaginya dan menambahkan kolom tambahan untuk setiap jawaban seperti:

           year  length  Animation
    0      1971     121       1
    1      1971     121       2
    2      1971     121       3
    3      1939      71       1
    4      1939      71       3 ...

Dan kemudian lakukan dr.Corr () yang sama persis (), atau tambahkan animasi_01 tambahan, animation_02 ... kolom, tetapi harus ada cara yang lebih cerdas untuk mengatasi masalah ini?

Edit: Snippet data aktual cuplikan data aktual

1
Rainoa 5 April 2021, 01:37

1 menjawab

Anda ingin merusak Animation (atau Preferred_positions dalam cuplikan data Anda) menjadi serangkaian kolom satu hot, satu kolom satu-panas untuk setiap string unik di kolom asli. Setiap kolom dengan memiliki nilai nol atau satu, satu sesuai dengan baris di mana string muncul di kolom asli.

Pertama, Anda perlu mendapatkan semua substring unik di Preferred_positions (lihat ini Jawab untuk cara menangani kolom daftar).

positions = df.Preferred_positions.str.split(',').sum().unique()

Kemudian Anda dapat membuat kolom posisi dalam loop berdasarkan apakah posisi yang diberikan dalam Preferred_positions untuk setiap baris.

for position in positions:
    df[position] = df.Preferred_positions.apply(
        lambda x: 1 if position in x else 0
    )
1
k_n_c 5 April 2021, 01:34