我有一个关于以下代码段如何运行的问题(即代码是从对此问题的回复Andy Hayden复制的:&#34; How do convert a pandas/dataframe to XML?&#34;)< / p>
def to_xml(df, filename=None, mode='w'):
def row_to_xml(row):
xml = ['<item>']
for i, col_name in enumerate(row.index):
xml.append(' <field name="{0}">{1}</field>'.format(col_name, row.iloc[i]))
xml.append('</item>')
return '\n'.join(xml)
res = '\n'.join(df.apply(row_to_xml, axis=1))
if filename is None:
return res
with open(filename, mode) as f:
f.write(res)
pd.DataFrame.to_xml = to_xml
然后,假设您有一个Pandas数据帧对象( df ),可以通过运行来调用 to_xml 函数:
df.to_xml()
或
df.to_xml('foo.xml')
我不明白为什么在调用 df.to_xml 时我不需要将我的dataframe对象的实例作为参数传递给函数,因为第一个参数不是可选?
更清楚的是,为什么我不需要通过以下方式调用 to_xml ?:
df.to_xml(df)
或
df.to_xml(df, 'foo.xml')
提前致谢