Saya memiliki bingkai data seperti ini:
ORDER_NO 2401 2504 2600
2020020 2019-12-04 2019-12-10 2019-12-12
2020024 2019-12-25 NaN 2019-12-20
2020034 NaN NaN 2019-12-20
2020020 2019-12-12 2019-12-15 2019-12-18
Saya membuat XML dari bingkai data di atas. Saya ingin menghapus nilai nol yang terisi ke dalam XML. Kode saya harus menghapus nilai kolom dan baris tertentu dari XML.
Kode saya
header = """<ORD>{}</ORD>"""
body ="""
<osi:ORDSTSINF types:STSCDE="{}">
<DTM>{}</DTM>"""
cols = df.columns
for row in df.itertuples():
with open(f'{row[1]}.xml', 'w') as f:
f.write(header.format(row[1]))
for c, r in zip(row[2:], cols[1:]):
f.write(body.format(r, c))
Output saat ini untuk catatan 2
<ORD>2020024</ORD>
<osi:ORDSTSINF types:STSCDE="2401">
<DTM>2019-12-25</DTM>
<osi:ORDSTSINF types:STSCDE="2504">
<DTM>NaN</DTM>
<osi:ORDSTSINF types:STSCDE="2600">
<DTM>2019-12-20</DTM>
Output yang diharapkan untuk catatan 2
<ORD>2020024</ORD>
<osi:ORDSTSINF types:STSCDE="2401">
<DTM>2019-12-25</DTM>
<osi:ORDSTSINF types:STSCDE="2600">
<DTM>2019-12-20</DTM>
Bagaimana ini bisa dilakukan dengan Python?
footer = """<END>123</END>""
) tetapi output datang di baris yang sama,<DTM>2020-03-29</DTM><END>123</END>
bukan baris baru.f.write
, Anda tidak akan berasumsi untuk memasang'\n'
. Anda mendapatkan mereka daribody
string Anda . Tentukanfooter = """\n<END>123</END>"""