मेरे पास डेटाफ़्रेम है जहां कुछ कक्षों में एकाधिक मानों की सूचियां होती हैं। किसी सेल में एकाधिक मानों को संग्रहीत करने के बजाय, मैं डेटाफ्रेम का विस्तार करना चाहता हूं ताकि सूची में प्रत्येक आइटम अपनी पंक्ति प्राप्त कर सके (सभी अन्य कॉलमों में समान मानों के साथ)। तो अगर मेरे पास है:पांडा: जब सेल सामग्री सूचीबद्ध होती है, तो सूची में प्रत्येक तत्व के लिए एक पंक्ति बनाएं
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.
सूचकांक नहीं है महत्वपूर्ण है, यह ठीक मौजूदा सूचकांक और अंतिम आदेश प्रतिसाद नहीं के रूप में कॉलम स्थापित करने के लिए है टी महत्वपूर्ण है।
धन्यवाद, यहां तक कि पहला कदम प्रत्येक आइटम को अपने कॉलम में लाने के लिए आवेदन करना एक बड़ी मदद है। मैं इसे करने के लिए थोड़ा अलग तरीके से आने में सक्षम था, लेकिन अभी भी कुछ उचित कदम शामिल हैं। स्पष्ट रूप से यह पांडस में करने के लिए सीधा नहीं है! – Marius
ग्रेट उत्तर। आप 'df.apply (lambda x: pd.Series (x ['samples']), axis = 1) को 'df.samples.apply (pd.Series)' के साथ बदलकर इसे छोटा कर सकते हैं। –