2011-10-15 6 views
25

के साथ दो डेटा फ्रेम संलग्न जब मैं कर रहा पंक्तियों से दो dataframes विलय करने के लिए प्रयास करें:पांडा

bigdata = data1.append(data2) 

मैं निम्न त्रुटि:

Exception: Index cannot contain duplicate values! 

पहले डेटा फ्रेम के सूचकांक 0 से शुरू होता है 38 तक और दूसरे से 0 से 48 तक। मुझे समझ में नहीं आया कि मुझे विलय करने से पहले डेटा फ्रेम में से किसी एक की अनुक्रमणिका को संशोधित करना है, लेकिन मुझे नहीं पता कि कैसे करें।

धन्यवाद।

data1:

meta particle ratio area type  
0 2  part10 1.348 0.8365 touching 
1 2  part18 1.558 0.8244 single 
2 2  part2  1.893 0.894 single 
3 2  part37 0.6695 1.005 single 
....clip... 
36 2  part23 1.051 0.8781 single 
37 2  part3  80.54 0.9714 nuclei 
38 2  part34 1.071 0.9337 single 

data2:

इन दो dataframes हैं

meta particle ratio area type  
0 3  part10 0.4756 1.025 single 
1 3  part18 0.04387 1.232 dusts 
2 3  part2  1.132 0.8927 single 
...clip... 
46 3  part46 13.71 1.001 nuclei 
47 3  part3  0.7439 0.9038 single 
48 3  part34 0.4349 0.9956 single 

प्रथम स्तंभ सूचकांक

+0

तुम दोनों 'dataframe' वस्तुओं की फोटो पोस्ट कृपया सकते हैं (अर्थात अजगर दुभाषिया में,' dataframe' का नाम टाइप इसलिए वस्तुओं स्क्रीन पर enumerated हैं)। जब आप विलय करते हैं तो आपने जो कीवर्ड इस्तेमाल किए हैं, उन्हें पोस्ट करें। जैसा कि आप http://pandas.sourceforge.net/dataframe.html देख सकते हैं, डेटाफ्रेम को गठबंधन करने के कुछ तरीके हैं ... सुनिश्चित करें कि आप उस व्यक्ति का उपयोग कर रहे हैं जो आप जो पूरा करने की कोशिश कर रहे हैं उसके लिए सबसे अधिक समझ में आता है –

+0

यहां दो डेटाफ्रेम का एक प्रिंट है: –

+0

मुझे खेद है, लेकिन मुझे अभी भी इस वेब पेज में 'data1' और' data2' की सामग्री दिखाई नहीं दे रही है ... कृपया उन्हें मूल प्रश्न –

उत्तर

40

append समारोह एक वैकल्पिक तर्क है +०१२३०९०३०२०जो आपको रिकॉर्ड में शामिल होने के लिए यहां उपयोग करना चाहिए, क्योंकि इंडेक्स आपके एप्लिकेशन के लिए सार्थक नहीं है।

+0

धन्यवाद, मैं इसे –

+0

@ जीन-पैट का प्रयास करूंगा: उत्तर क्यों स्वीकार नहीं करते? –

1

आप पहले groupby विधि का उपयोग कर इंडेक्स-डुप्लिकेट (मूल्य नहीं) पंक्ति की पहचान कर सकते हैं, और फिर डुप्लिकेट इंडेक्स के साथ सभी पंक्तियों पर एक योग/माध्य ऑपरेशन कर सकते हैं।

data1 = data1.groupby(data1.index).sum() 
data2 = data2.groupby(data2.index).sum() 
+0

मेरे पास पैनल = पैनल 1.एपेंड (पैनल 2) के साथ डुप्लीस था। और फिर यह उन्हें हटा दिया: पैनल = panel.groupby (panel.index) .sum() तो thx। (मुझे बताया गया है कि मैं पैनलों के साथ काम कर रहा हूं, डेटाफ्रेम नहीं, कैसे जानना है) – gseattle