Я пытаюсь проанализировать файл XML и вывести текст из указанных c элементов в Pandas DataFrame. Если элемент не содержит данных, должна быть сохранена пустая строка. Вместо этого я добавляю None в мой DataFrame. Мой код ниже:
XML
<?xml version="1.0" encoding="utf-8"?>
<Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header>
<Employee>
<FirstName>John</FirstName>
<MiddleName />
<LastName>Smith</LastName>
<Gender>M</Gender>
<Phone>555-5555</Phone>
</Employee>
<Employee>
<FirstName>Jane</FirstName>
<MiddleName />
<LastName>Doe</LastName>
<Gender>F</Gender>
<Phone />
</Employee>
</Header>
</Data>
Код
def get_value(node):
return str(node.text) if node is not None else ""
tree = et.parse(file_path)
df_cols = ["First Name", "Last Name", "Phone Number"]
df = pd.DataFrame(columns=df_cols)
for node in tree.iter("Employee")
first_name = get_value(node.find("FirstName")
last_name = get_value(node.find("LastName")
phone = get_value("PhoneNumber")
df = df.append(pd.Series([first_name, last_name, phone], index=df_cols), ignore_index=True)
print(df)
Выход
First Name,Last Name,Phone Number
John,Smith,555-5555
Jane,Doe,None
Мне нужно None, чтобы вместо отображения просто как пустая строка, как показано ниже:
First Name,Last Name,Phone Number
John,Smith,555-5555
Jane,Doe,
Мне интересно, работает ли моя функция get_value не так, как задумано, и не возвращает ли пустую строку вместо NoneType, или пустая строка каким-то образом интерпретируется обратно в NoneType при обработке Pandas?
Обновление
Я также пытался использовать df.replace(["nan", "None"], "")
, как предлагается здесь , но мой DataFrame по-прежнему выводит «None» в столбцах, где не было данных XML. Это происходит как в терминале, так и когда DataFrame сохраняется в файл.