Я пытаюсь сопоставить информацию из трех DataFrames используя UniqueID в качестве общего ключа.
DataFrames:
- Main — содержит контактную информацию. Столбцы: UniqueID, Name, Address, Email, InvestmentEntryNumber (количество строк Investment), CapitalEntryNumber (количество строк Capital).
- Investment — содержит сведения об инвестициях. Столбцы: UniqueID, Подробности, Стоимость
- Капитал — содержит сведения о капитале: Столбцы: UniqueID, Описание, Общие расходы
(https://i.sstatic.net/6jQf9KBM.png)
Я понимаю, что пропускать данные/размещать данные таким образом не является хорошей практикой, но заинтересованные стороны хотят получить информацию именно в этом формате.
У меня есть решение, когда я объединяю «Main» и «Инвестиции», но не тогда, когда я объединяю данные «Капитал».
Код: Выделить всё
Investment_merged_df = Main_df.merge(Investment_df, on="UniqueID")Код: Выделить всё
for each_row in range(1, len(Investment_merged_df["UniqueID"])): if Investment_merged_df["UniqueID][each_row] == Investment_merged_df["UniqueID"][each_row-1]: Investment_merged_df.loc[each_row, "True/False"] = True else: Investment_merged_df.loc[each_row, "True/False"] = FalseКод: Выделить всё
Investment_merged_df.loc[Investment_merged_df["True/False"] == True, Investment_merged_df.columns[:5]] = ""Код: Выделить всё
Investment_merged_df = Investment_merged_df.drop(columns=['True/False'])Я просто хочу, чтобы данные «Капитал» были добавлены в конец DataFrame, но в результате получается больше строк, чем хотелось бы.
Я подумал, может быть, есть способ использовать «InvestmentEntryNumber» и «CapitalEntryNumber»?
Подробнее здесь: https://stackoverflow.com/questions/793 ... oke-format
Мобильная версия