Что вам нужно сделать, так это перебрать предметы, найденные pd.read_excel
.Эта функция возвращает DataFrame
, поэтому вы можете использовать один из трех встроенных итераторов: itertuples , iteritems или iterrows .
Для этого примера XLS:
| | A | B | C |
| - | -------------- |--------------| --------------|
| 1 | /a/file/path/1 | first text 1 | second text 1 |
| 2 | /a/file/path/2 | first text 2 | second text 2 |
| 3 | /a/file/path/3 | first text 3 | second text 3 |
| 4 | /a/file/path/4 | first text 4 | second text 4 |
| 5 | /a/file/path/5 | first text 5 | second text 5 |
При чтении файла с пандами, когда у вас нет строки заголовка в XLS, вы должны указать header=None
и указать имена столбцов в names
.Если у вас есть строка заголовка, и это первая строка XLS, просто введите header=0
и пропустите names
.Убедившись, что вы можете сопоставить каждый столбец с именем столбца, вы можете работать с itertuples
, который для вашего варианта использования является наиболее подходящим способом - вы можете получить доступ к значениям строк по их именам столбцов в цикле:
import pandas as pd
exc = pd.read_excel('file_text_map.xlsx', header=None, names=('file_path', 'text1', 'text2',))
for row in exc.itertuples(index=False):
print('file_path:', row.file_path, ', text1:', row.text1, ', text2:', row.text2)
Что приведет к
file_path: /a/file/path/1 , text1: first text 1 , text2: second text 1
file_path: /a/file/path/2 , text1: first text 2 , text2: second text 2
file_path: /a/file/path/3 , text1: first text 3 , text2: second text 3
file_path: /a/file/path/4 , text1: first text 4 , text2: second text 4
file_path: /a/file/path/5 , text1: first text 5 , text2: second text 5