मेरे पास एक डेटाफ्रेम है जहां कुछ कोशिकाओं में कई मानों की सूची होती है। एक सेल में कई मानों को संग्रहीत करने के बजाय, मैं डेटाफ्रेम का विस्तार करना चाहूंगा ताकि सूची में प्रत्येक आइटम को अपनी पंक्ति (सभी अन्य स्तंभों में समान मान के साथ) मिल जाए। तो अगर मेरे पास है:
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
मैं लंबे रूप में कैसे परिवर्तित करूँ, जैसे:
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.
इंडेक्स महत्वपूर्ण नहीं है, मौजूदा कॉलम को इंडेक्स के रूप में सेट करना ठीक है और अंतिम ऑर्डरिंग महत्वपूर्ण नहीं है।
df.explode('samples')
हल करने के लिए भी उपयोग कर सकते हैं ।explode
अभी के लिए केवल एक कॉलम में विस्फोट का समर्थन कर सकते हैं।