Bazı hücreler birden çok değer listelerini içeren bir veri çerçevesi var. Bir hücrede birden çok değer depolamak yerine, listedeki her öğenin kendi satırını (diğer tüm sütunlarda aynı değerlerle) alacak şekilde veri çerçevesini genişletmek istiyorum. Eğer varsa:
import pandas as pd
import numpy as np
df = pd.DataFrame(
{'trial_num': [1, 2, 3, 1, 2, 3],
'subject': [1, 1, 1, 2, 2, 2],
'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
}
)
df
Out[10]:
samples subject trial_num
0 [0.57, -0.83, 1.44] 1 1
1 [-0.01, 1.13, 0.36] 1 2
2 [1.18, -1.46, -0.94] 1 3
3 [-0.08, -4.22, -2.05] 2 1
4 [0.72, 0.79, 0.53] 2 2
5 [0.4, -0.32, -0.13] 2 3
Uzun biçime nasıl dönüştürebilirim, örneğin:
subject trial_num sample sample_num
0 1 1 0.57 0
1 1 1 -0.83 1
2 1 1 1.44 2
3 1 2 -0.01 0
4 1 2 1.13 1
5 1 2 0.36 2
6 1 3 1.18 0
# etc.
Dizin önemli değildir, mevcut sütunları dizin olarak ayarlamak uygundur ve son sıralama önemli değildir.
df.explode('samples')
çözmek için de kullanabilirsiniz .explode
şimdilik yalnızca bir sütunun patlamasını destekleyebilir.