मुझे ValueError: cannot reindex from a duplicate axisतब मिल रहा है जब मैं एक निश्चित मूल्य के लिए एक सूचकांक निर्धारित करने की कोशिश कर रहा हूं। मैंने एक सरल उदाहरण के साथ इसे पुन: पेश करने की कोशिश की, लेकिन मैं ऐसा नहीं कर सका।
यहाँ ipdbट्रेस के अंदर मेरा सत्र है । मेरे पास स्ट्रिंग इंडेक्स और पूर्णांक कॉलम, फ्लोट वैल्यू के साथ डेटाफ्रेम है। हालाँकि जब मैं sumसभी कॉलमों के योग के लिए इंडेक्स बनाने की कोशिश करता हूँ तो मुझे ValueError: cannot reindex from a duplicate axisत्रुटि हो रही है। मैंने एक ही विशेषताओं के साथ एक छोटा डेटाफ़्रेम बनाया, लेकिन समस्या को पुन: उत्पन्न करने में सक्षम नहीं था, मैं क्या गायब हो सकता था?
मैं वास्तव में समझ नहीं पा रहा हूं ValueError: cannot reindex from a duplicate axisकि इस त्रुटि संदेश का क्या मतलब है? शायद इससे मुझे समस्या का निदान करने में मदद मिलेगी, और यह मेरे सवाल का सबसे जवाबदेह हिस्सा है।
ipdb> type(affinity_matrix)
<class 'pandas.core.frame.DataFrame'>
ipdb> affinity_matrix.shape
(333, 10)
ipdb> affinity_matrix.columns
Int64Index([9315684, 9315597, 9316591, 9320520, 9321163, 9320615, 9321187, 9319487, 9319467, 9320484], dtype='int64')
ipdb> affinity_matrix.index
Index([u'001', u'002', u'003', u'004', u'005', u'008', u'009', u'010', u'011', u'014', u'015', u'016', u'018', u'020', u'021', u'022', u'024', u'025', u'026', u'027', u'028', u'029', u'030', u'032', u'033', u'034', u'035', u'036', u'039', u'040', u'041', u'042', u'043', u'044', u'045', u'047', u'047', u'048', u'050', u'053', u'054', u'055', u'056', u'057', u'058', u'059', u'060', u'061', u'062', u'063', u'065', u'067', u'068', u'069', u'070', u'071', u'072', u'073', u'074', u'075', u'076', u'077', u'078', u'080', u'082', u'083', u'084', u'085', u'086', u'089', u'090', u'091', u'092', u'093', u'094', u'095', u'096', u'097', u'098', u'100', u'101', u'103', u'104', u'105', u'106', u'107', u'108', u'109', u'110', u'111', u'112', u'113', u'114', u'115', u'116', u'117', u'118', u'119', u'121', u'122', ...], dtype='object')
ipdb> affinity_matrix.values.dtype
dtype('float64')
ipdb> 'sums' in affinity_matrix.index
False
यहाँ त्रुटि है:
ipdb> affinity_matrix.loc['sums'] = affinity_matrix.sum(axis=0)
*** ValueError: cannot reindex from a duplicate axis
मैंने इसे एक सरल उदाहरण के साथ पुन: पेश करने की कोशिश की, लेकिन मैं असफल रहा
In [32]: import pandas as pd
In [33]: import numpy as np
In [34]: a = np.arange(35).reshape(5,7)
In [35]: df = pd.DataFrame(a, ['x', 'y', 'u', 'z', 'w'], range(10, 17))
In [36]: df.values.dtype
Out[36]: dtype('int64')
In [37]: df.loc['sums'] = df.sum(axis=0)
In [38]: df
Out[38]:
10 11 12 13 14 15 16
x 0 1 2 3 4 5 6
y 7 8 9 10 11 12 13
u 14 15 16 17 18 19 20
z 21 22 23 24 25 26 27
w 28 29 30 31 32 33 34
sums 70 75 80 85 90 95 100