Объединить данные двух листов Excel в один с помощью одних и тех же данных столбца

Excel1
Column1     Column2         Column3
 1           A           [xyz-5536]A    
 2           B           [xyz-5537]B
 3           C           [xyz-5538]C    
 4           D           [xyz-5539]D    

Это один тип отчета о прослеживаемости, содержащий различные элементы.

Excel2
Column1        Result1      Result2
[xyz-5536]A    Pass         fail
[xyz-5537]B    fail         pass    
[xyz-5538]C    pass         fail
[xyz-5539]D    fail         pass

У меня есть два excel, как указано выше, я хочу создать новый лист с результатом, поскольку excel1 добавит данные, сопоставив идентификатор в квадратной скобке, и добавит результат1 и результат2

пробовал через макросы

Column1     Column2         Column3      Result1    Result2
1            A           [xyz-5536]A     pass     fail
2            B           [xyz-5537]B     fail     pass
3            C           [xyz-5538]C     pass     fail
4            D           [xyz-5539]D     fail     pass  

Она должна быть выше таблицы. Он должен относиться только к одному элементу из column3 один раз. Я новичок в Python.

Принадлежат ли два данных Excel одному и тому же .xlsx файлу? (это листы из одного файла или это 2 разных файла?)

Alexandre B. 30.05.2019 14:32

Данные принадлежат двум разным файлам .xlsx

pradip solankar 30.05.2019 14:37

И окончательный вывод в новом файле?

Alexandre B. 30.05.2019 14:38

да правильно, окончательный будет новый файл

pradip solankar 30.05.2019 14:40
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
4
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Один из простых способов — использовать модуль pandas.

Ты сможешь:

  • читать файл Excel с read_excel методом (док). Ты
  • сливаться ваши данные методом merge(док)
  • уронить дублированные столбцы с drop методами (док)
  • экспорт ваши данные в новый файл Excel с помощью to_excel метода (док)

Здесь код предполагает, что у вас есть два файла excel:

# import modules
import pandas as pd

# filename
filename_1 = "Excel1.xlsx"
filename_2 = "Excel2.xlsx"

# Pandas files
df_1 = pd.read_excel(filename_1)
df_2 = pd.read_excel(filename_2)
print(df_1)
#    Column1 Column2      Column3
# 0        1       A  [xyz-5536]A
# 1        2       B  [xyz-5537]B
# 2        3       C  [xyz-5538]C
# 3        4       D  [xyz-5539]D
print(df_2)
#        Column1 Result1 Result2
# 0  [xyz-5536]A    Pass    fail
# 1  [xyz-5537]B    fail    pass
# 2  [xyz-5538]C    pass    fail
# 3  [xyz-5539]D    fail    pass

# Merge the two dataframe
df_new = df_1.merge(df_2, left_on = "Column3",
                   right_on = "Column1", suffixes=('', '_df2'))
print(df_new)
#    Column1 Column2      Column3  Column1_df2 Result1 Result2
# 0        1       A  [xyz-5536]  A[xyz-5536]A    Pass     fail
# 1        2       B  [xyz-5537]  B[xyz-5537]B    fail     pass
# 2        3       C  [xyz-5538]  C[xyz-5538]C    pass     fail
# 3        4       D  [xyz-5539]  D[xyz-5539]D    fail     pass

# Remove the duplicated columns
df_new = df_new.drop(["Column1_df2"], axis=1)
print(df_new)
# Column1 Column2      Column3  Result1 Result2
# 0        1       A[xyz-5536]A    Pass    fail
# 1        2       B[xyz-5537]B    fail    pass
# 2        3       C[xyz-5538]C    pass    fail
# 3        4       D[xyz-5539]D    fail    pass

# Export to a new xlsx file
df_new.to_excel("new_file.xlsx", index=False)

Спасибо, Александр,

pradip solankar 30.05.2019 18:57

Ура, не стесняйтесь принять ответ, если это решит вашу проблему :)

Alexandre B. 30.05.2019 19:10

Другие вопросы по теме