С помощью Python извлеките в файл Excel значение ячейки в строке, где ячейка в той же строке содержит строку символов изPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 С помощью Python извлеките в файл Excel значение ячейки в строке, где ячейка в той же строке содержит строку символов из

Сообщение Anonymous »

У меня есть несколько XML-файлов с такими именами, как:
LLL_ABC0D012_title.xml
LLL_ABC0D013_title.xml
LLL_ABT0G012_title.xml
LLL_ABR0N012_title.xml
После «LLL_» всегда должно быть 8 символов.
У меня есть файл Excel с более чем 900 строками, который выглядит следующим образом:

< thead>

ссылка
dtp1
dtp2
< th>dtp3




ABC0D0121_blabla
1_1_blablabla
1_1_1_blablabla


ABC0D013
1_blabla
1_1_blablabla
1_1_1_blablablabla


ABC0D014
1_blabla
1_1_blablabla1_1_1_blablablabla


ABT0G012
1_blabla
1_1_blablabla
1_1_1_blablablabla



В моих XML-файлах есть теги text, text, text.
Я бы сделал это хотелось бы изменить текст этих тегов на текст в ячейках соответствующих столбцов в таблице выше.
Для этого я бы хотел, чтобы мой скрипт выполнял цикл, который читает Символы ABC0D012 (а затем еще один) в заголовке моего XML-файла, найдите совпадение в столбце «Ссылка» моего файла Excel, а затем найдите соответствующее значение в «dtp1», «dtp2» и «dtp3».
Затем я хотел бы сохранить эти значения в переменной, чтобы заменить текст в моих тегах.
Я новичок в Python. Я попробовал что-то вроде:

Код: Выделить всё

import numpy as np
import openpyxl
import pandas as pd
import xml.etree.ElementTree as ET
import os

table1 = pd.read_excel('C:/Users/Documents/datatypes.xlsx', na_values=['NA'])
table2 = table1.replace('\xa0', ' ',regex=True)

for root, dirs, files in os.walk("."):
for file in files :
if file[-4:] == '.xml':
#print(file)
xml = ET.parse('LLL_ABC0D012_title.xml')
root = xml.getroot()
dtp1_xml = root[8]
dtp2_xml = root[9]
dtp3_xml = root[10]
num = file[4:12]
#print(num)
dtp1_excel = table2['dtp1'].where(table2['reference'] == num)
dtp1_xml.text = dtp1_excel
#print(dtp1_xml.text)
ET.indent(root)
xml.write("LLL_ABC0D012_title.xml", encoding='utf-8', xml_declaration=True, method='xml')
Но это не работает, «dtp1_excel» возвращает не значение dtp1 из таблицы в функции печати, а что-то вроде:

Код: Выделить всё

0      NaN
1      NaN
2      NaN
3      NaN
4      NaN
...
931    NaN
932    NaN
933    NaN
934    NaN
935    NaN
Name: dtp1, Length: 936, dtype: object
У меня нет значения NaN в столбцах reference и dtp1, и оно должно возвращать только одно значение ячейки.
Что не так с моим подходом? Не могли бы вы мне помочь, пожалуйста?

Подробнее здесь: https://stackoverflow.com/questions/786 ... cell-in-th
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»