Как объединить таблицы из Excel?
Есть N таблиц в Excel с разными данными, но в каждой есть одинаковое поле.
table1
| Имя сервера | Стенд | Используется (Да/Нет) |
|---|---|---|
| dev1 | Тест | Да |
| prom2 | Пром | Да |
| data2 | Тест | Нет |
| data24 | Пром | Да |
table2
| ip | Имя сервера | CPU |
|---|---|---|
| 10.10.2 | data2 | 24 |
| 10.1.24 | data24 | 12 |
| 10.1.2 | prom2 | 4 |
| 10.10.1 | dev1 | 8 |
Нужно объединить таблицы по полю Имя сервера. Причем, строчки в этих полях идут вразнобой.
Я смотрел библиотеку Pandas, но не могу понять, как сделать не построчное объеденение.
Ответы (2 шт):
Автор решения: strawdog
→ Ссылка
Для начала вам нужно считать файлы excel в датафреймы:
import pandas as pd
df1 = pd.read_xlsx("первый файл.xls")
df2 = pd.read_xlsx("второй файл.xls")
Затем просто сделать merge:
res = df1.merge(df2, on="Имя сервера", how="outer")
на вашем примере, res будет
Имя сервера Стенд Используется (Да/Нет) ip CPU
0 dev1 Тест Да 10.10.1 8
1 prom2 Пром Да 10.1.2 4
2 data2 Тест Нет 10.10.2 24
3 data24 Пром Да 10.1.24 12
Автор решения: MaxU
→ Ссылка
Воспользуйтесь методом pandas.concat(), чтобы объединить сразу все фреймы:
res = pd.concat(
[pd.read_excel(f).set_index("Имя сервера") for f in list_of_excel_files],
axis=1).reset_index()