से सैम्पलिंग मैं एक MultiIndex
पांडा DataFrame
df_data
कहा जाता है में निम्नलिखित पैनल डेटा के साथ काम कर रहा हूँ:MultiIndex DataFrame
y x
n time
0 0 0.423607 -0.307983
1 0.565563 -0.333430
2 0.735979 -0.453137
3 0.962857 1.671106
1 0 0.772304 1.221366
1 0.455327 -1.024852
2 0.864768 0.609867
3 0.334429 -2.567936
2 0 0.435553 -0.259228
1 0.221501 0.484677
2 0.773628 0.650288
3 0.293902 0.566452
n
अनुक्रमित एक व्यक्ति, t
अनुक्रमित समय (उनमें से 500 कर रहे हैं)। यह एक संतुलित पैनल है। मैं प्रतिस्थापन वाले nn=100
व्यक्तियों का एक यादृच्छिक नमूना बनाना चाहता हूं। साथ ही, यदि कोई व्यक्ति इसे यादृच्छिक नमूना में बनाता है, तो इस व्यक्ति के लिए सभी 4 बार अवलोकन (टी = 0,1,2,3) नमूना को असाइन किया जाना चाहिए।
निम्न पंक्ति लगभग कर रही है जो मैं चाहता:
df_sample = df_data.loc[np.random.randint(3, size=100).tolist()]
हालांकि, यह एक व्यक्ति बार-बार नमूना नहीं है। तो यदि यादृच्छिक चर की बनाई गई सूची कहती है [2, 3, 2, 4, 1, ...] तो तीसरा व्यक्ति (अनुक्रमणिका = 2 तीसरा व्यक्ति है) केवल एक बार चयनित होता है और यादृच्छिक नमूना में दो बार नहीं होता है। इसका अर्थ यह है कि जैसे ही यादृच्छिक वेक्टर में एक ही व्यक्ति एक से अधिक बार होता है, मैं यादृच्छिक नमूने में 100 से कम व्यक्तियों (प्रत्येक के साथ 4 बार अवलोकन) के साथ समाप्त होता हूं। मैंने df_data.sample
फ़ंक्शन का भी प्रयास किया, लेकिन मुझे पैनल में मौजूद विशिष्ट बहुस्तरीय इंडेक्स को संभालने में सक्षम नहीं लगता है। मैं यह करने के लिए सभी प्रकार के लूप लिख सकता था, लेकिन मैंने सोचा कि ऐसा करने का एक सरल (और तेज़) तरीका होना चाहिए। मैं पाइथन 3.5 पर हूं और मैं पांडा संस्करण 0.17.1 का उपयोग कर रहा हूं। धन्यवाद।
संभावित डुप्लिकेट पांडा मल्टीइंडेक्स] (http://stackoverflow.com/questions/38731858/how-to-get-a-random-bootstrap-sample-from-pandas-multiindex) – maxymoo