У меня есть фрейм данных со столбцом, включающим повторяющиеся значения из-за наличия данных за несколько лет, которые я хочу преобразовать в наличие только уникальных значений.Для этого я хочу, чтобы другие столбцы были преобразованы в словари, в которых данные всех лет показывались бы в виде пар ключ-значение в формате {'year': value}.Это должно быть сделано для всех других столбцов, кроме столбца с уникальными значениями.Мой фрейм входных данных выглядит следующим образом:
Оригинальный фрейм входных данных
Воспроизводимый код для фрейма данных
df = pd.DataFrame({
'A': {0: 'a1', 1: 'a2', 2: 'a3', 3: 'a4'},
'Unique': {0: 'b1', 1: 'b1', 2: 'b2', 3: 'b2'},
'Year': {0: 2017, 1: 2008, 2: 2017, 3: 2008} ,
'C': {0: 'c1', 1: 'c2', 2: 'c3', 3: 'c4'}
})
До сих пор я пытался получитькомбинации значений в год для каждой переменной в списках и добавления ее в словарь в надежде преобразовать ее обратно во фрейм данных.Но это не позволит мне получить тот же результат, что и ожидаемый результат.
Пример того, что я сделал до сих пор:
B_list = list(df["Unique"])
temp_dict = {}
new_dict = {}
for a in set(Unique_list):
i = 0
new_dict[a] = {}
temp_list = []
for index, row in df.iterrows():
if df["Unique"][i] == a:
temp_list.append(str(df["Year"][i]) +": " + df["A"][i])
i = i+1
new_dict[a] = temp_list
. Он дает выходной словарь как
{'b1': ['2017: a1', '2008: a2'],
'b2': ['2017: a3', '2008: a4']}
, который, когда я превращаюсь во фрейм данных, преобразуется в
Результирующий кадр данных, который не является правильным
В то время как ожидаемый вывод - это кадр данных в формате
Ожидаемый выходной кадр данных
Любая помощь?Заранее спасибо.