Böyle bir pandalar veri çerçevesi (X11) var: Aslında dx99 kadar 99 sütun var
dx1 dx2 dx3 dx4
0 25041 40391 5856 0
1 25041 40391 25081 5856
2 25041 40391 42822 0
3 25061 40391 0 0
4 25041 40391 0 5856
5 40391 25002 5856 3569
25041,40391,5856 vb. Hücre değerleri için ek sütun (lar) oluşturmak istiyorum. Yani herhangi bir dxs sütununda 25041 söz konusu satırda 25041 oluşursa 1 veya 0 değeri olan bir 25041 sütunu olacaktır. Bu kodu kullanıyorum ve satır sayısı az olduğunda çalışır.
mat = X11.as_matrix(columns=None)
values, counts = np.unique(mat.astype(str), return_counts=True)
for x in values:
X11[x] = X11.isin([x]).any(1).astype(int)
Ben böyle sonuç alıyorum:
dx1 dx2 dx3 dx4 0 25002 25041 25061 25081 3569 40391 42822 5856
25041 40391 5856 0 0 0 1 0 0 0 1 0 1
25041 40391 25081 5856 0 0 1 0 1 0 1 0 1
25041 40391 42822 0 0 0 1 0 0 0 1 1 0
25061 40391 0 0 0 0 0 1 0 0 1 0 0
25041 40391 0 5856 0 0 1 0 0 0 1 0 1
40391 25002 5856 3569 0 1 0 0 0 1 1 0 1
Satır sayısı binlerce veya milyonlarca olduğunda, askıda kalıyor ve sonsuza dek sürüyor ve sonuç alamıyorum. Lütfen hücre değerlerinin sütuna özgü olmadığını, bunun yerine çoklu sütunlarda tekrarlandığını görün. Örneğin, 40391, dx1'de olduğu gibi dx2'de de 0 ve 5856 vb. İçin meydana gelir.