Просто чтобы понять, что делал OP, вот полный код, который работает -
import pandas as pd
import numpy as np
a = [0,1,0,1,2,2]
b = ['x1','x2','x3','x4','x5','x6']
univals = set(a)
serObj=pd.Series()
for ele in univals:
indexfound=np.where([i==ele for i in a])
Xpointsfromindex=np.take(b, indexfound)
print(Xpointsfromindex)
serobj1=pd.Series(Xpointsfromindex[0],index=[ele for _ in range(np.shape(indexfound)[1])]) ##error happening here
serObj.append(serobj1)
print(serObj)
выход
[['x1' 'x3']]
[['x2' 'x4']]
[['x5' 'x6']]
Объяснение
indexfound=np.where(a == ele)
всегда будет возвращать False
, потому что вы пытаетесь сравнить list
со скаляром. Изменение его в список понимания выбирает индексы
Следующим изменением является использование списка в параметре index
pd.Series
.
Это укажет вам путь к тому, чего вы хотите достичь