Метод to_xml
Метод to_xml применяется к DataFrame
и преобразует содержимое таблицы в XML-документ.
По умолчанию метод возвращает строку с XML-разметкой,
но с помощью параметра path_or_buffer можно
сохранить результат непосредственно в файл.
Метод поддерживает настройку корневого элемента,
элементов строк и столбцов через параметры
root_name, row_name и col_name.
Синтаксис
df.to_xml(
path_or_buffer=None,
index=True,
root_name='data',
row_name='row',
col_name='col',
xml_declaration=True,
pretty_print=False,
encoding='utf-8'
)
Пример
Давайте преобразуем простую таблицу в XML-строку:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
xml_data = df.to_xml()
print(xml_data)
Результат выполнения кода:
"<?xml version='1.0' encoding='utf-8'?>
<data>
<row>
<index>0</index>
<a>1</a>
<b>10</b>
</row>
<row>
<index>1</index>
<a>2</a>
<b>20</b>
</row>
<row>
<index>2</index>
<a>3</a>
<b>30</b>
</row>
</data>"
Пример
Настроим имена корневого элемента и элементов строк
с помощью параметров root_name и row_name:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
xml_data = df.to_xml(
root_name='root',
row_name='item'
)
print(xml_data)
Результат выполнения кода:
"<?xml version='1.0' encoding='utf-8'?>
<root>
<item>
<index>0</index>
<a>1</a>
<b>10</b>
</item>
<item>
<index>1</index>
<a>2</a>
<b>20</b>
</item>
<item>
<index>2</index>
<a>3</a>
<b>30</b>
</item>
</root>"
Пример
Изменим название элемента для столбцов с помощью
параметра col_name. Также отключим вывод
индекса, передав index=False:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
xml_data = df.to_xml(
index=False,
col_name='column'
)
print(xml_data)
Результат выполнения кода:
"<?xml version='1.0' encoding='utf-8'?>
<data>
<row>
<column>1</column>
<column>10</column>
</row>
<row>
<column>2</column>
<column>20</column>
</row>
<row>
<column>3</column>
<column>30</column>
</row>
</data>"
Пример
Включим красивое форматирование с помощью
параметра pretty_print=True и отключим
XML-декларацию через xml_declaration=False:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
xml_data = df.to_xml(
pretty_print=True,
xml_declaration=False
)
print(xml_data)
Результат выполнения кода:
"<data>
<row>
<index>0</index>
<a>1</a>
<b>10</b>
</row>
<row>
<index>1</index>
<a>2</a>
<b>20</b>
</row>
<row>
<index>2</index>
<a>3</a>
<b>30</b>
</row>
</data>"