Я хочу фильтровать значения по нескольким столбцам, создавая кадры данных для уникальных комбинаций значений. Любая помощь будет оценена по достоинству.
Вот мой код, который терпит неудачу (учитывая dataframe df):
dd = defaultdict(dict) #create blank default dictionary
values_col1 = df.col1.unique() #get the unique values from column 1 of df
for i in values_col1:
dd[i] = df[(df['col1']==i)] #for each unique value create a sorted df and put in in a dictionary
values_col2 = dd[i].col2.unique() #get the unique values from column2 of df
for m in values_col2:
dd[i][m] = dd[i][(dd[i]['col2']==m)] #for each unique column2 create a sub dictionary
Когда я запускаю его, я получаю очень длинное сообщение об ошибке. Я не буду вставлять сюда все, но вот некоторые из них:
C:\Anaconda3\lib\site-packages\pandas\indexes\base.py в get_loc(self, ключ, метод, допуск) 1944 попробуйте: -> 1945 return self._engine.get_loc(key) 1946 кроме KeyError:
...
ValueError: неправильное количество переданных элементов 6, размещение подразумевает 1