ValueError: cannot reindex from a duplicate axisBelirli bir değere bir dizin ayarlamak için çalışıyorum zaman alıyorum . Bunu basit bir örnekle çoğaltmaya çalıştım, ama yapamadım.
İşte izimin içindeki oturumum ipdb. Dize dizini ve tamsayı sütunları, kayan nokta değerleri olan bir DataFrame var. Ancak sumtüm sütunların toplamı için dizin oluşturmaya çalıştığımda ValueError: cannot reindex from a duplicate axishata alıyorum. Aynı özelliklere sahip küçük bir DataFrame oluşturdum, ancak sorunu yeniden üretemedim, ne eksik olabilirim?
Gerçekten ne ValueError: cannot reindex from a duplicate axisanlama geldiğini anlamıyorum , bu hata mesajı ne anlama geliyor? Belki bu sorunu teşhis etmeme yardımcı olacaktır ve bu benim sorumun en çok cevaplanan kısmı.
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
İşte hata:
ipdb> affinity_matrix.loc['sums'] = affinity_matrix.sum(axis=0)
*** ValueError: cannot reindex from a duplicate axis
Bunu basit bir örnekle çoğaltmaya çalıştım ama başarısız oldum
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