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.
Данные принадлежат двум разным файлам .xlsx
И окончательный вывод в новом файле?
да правильно, окончательный будет новый файл
Один из простых способов — использовать модуль pandas
.
Ты сможешь:
read_excel
методом (док). Тыmerge
(док)drop
методами (док)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)
Спасибо, Александр,
Ура, не стесняйтесь принять ответ, если это решит вашу проблему :)
Принадлежат ли два данных Excel одному и тому же
.xlsx
файлу? (это листы из одного файла или это 2 разных файла?)