Мои проблемы начались с файла JSON, где у меня есть определенная информация об «устройстве», с определенными параметрами для разных устройств.
Я могу захватить каждое устройство, например, в виде одного кадра данных для каждого устройства. И они будут иметь 40-60 столбцов, включая общие столбцы.
Пример данных приведен ниже:
![enter image description here](https://i.stack.imgur.com/ywGJd.png)
Воспроизводимый код:
df1 = pd.DataFrame({'id': {0: 1122},
'c1': {0: 'uid'},
'c2': {0: 'iopw'},
'c3': {0: 'uywy'},
'c4': {0: '7uyw'},
'c5': {0: 'iwoq'},
'c6': {0: 'owoe'}}
)
df2 = pd.DataFrame({'id': {0: 9910},
'c1': {0: 'mnjjj'},
'c3': {0: 'mhji'},
'c6': {0: 'mb '},
'c8': {0: 'bly'},
'c14': {0: 'bnhg'},
'c15': {0: 'kkkl'},
'c20': {0: 'llug'},
'c25': {0: '87jo'}})
df3 = pd.DataFrame({'id': {0: 2020},
'c4': {0: 'kvkh'},
'c5': {0: 'kjhjkh'},
'c10': {0: 'cvcvc'},
'c15': {0: 'ququ'}})
Я попытался объединить, но проблема в приведенном ниже коде, который я пробовал, заключается в том, что он создает дублирующиеся столбцы.
dfs = [df1, df2, df3]
from functools import reduce
df_final = reduce(lambda left,right: pd.merge(left,right,on='id',how="outer"), dfs)
Как можно избежать дублирования или есть ли какой-либо другой более чистый способ объединения или объединения таблиц, чтобы я не имел повторяющихся столбцов?
Ожидаемыйвывод показан ниже. Он должен иметь 3 строки и правильное количество столбцов
{'id': {0: 1122, 1: 9910, 2: 2020},
'c1': {0: 'uid', 1: 'mnjj', 2: nan},
'c2': {0: 'iopw', 1: nan, 2: nan},
'c3': {0: 'uywy', 1: nan, 2: nan},
'c4': {0: '7uyw', 1: nan, 2: 'kvkh'},
'c5': {0: 'iwoq', 1: nan, 2: 'kjhjkh'},
'c6': {0: 'owoe', 1: 'mb', 2: nan},
'c7': {0: nan, 1: nan, 2: nan},
'c8': {0: nan, 1: 'bly', 2: nan},
'c9': {0: nan, 1: nan, 2: nan},
'c10': {0: nan, 1: nan, 2: 'cvcvc'},
'c11': {0: nan, 1: nan, 2: nan},
'c12': {0: nan, 1: nan, 2: nan},
'c13': {0: nan, 1: nan, 2: nan},
'c14': {0: nan, 1: 'bnhg', 2: nan},
'c15': {0: nan, 1: 'kkkl', 2: 'ququ'},
'c16': {0: nan, 1: nan, 2: nan},
'c17': {0: nan, 1: nan, 2: nan},
'c18': {0: nan, 1: nan, 2: nan},
'c19': {0: nan, 1: nan, 2: nan},
'c20': {0: nan, 1: 'llug', 2: nan},
'c21': {0: nan, 1: nan, 2: nan},
'c22': {0: nan, 1: nan, 2: nan},
'c23': {0: nan, 1: nan, 2: nan},
'c24': {0: nan, 1: nan, 2: nan},
'c25': {0: nan, 1: '87jo', 2: nan}}