Pandas 读取指定数据类型的 XML 文件

问题描述 投票:0回答:1

我的代码:

df = pd.read_xml(
    path_or_buffer=PATH,
    xpath="//Data",
    compression="gzip"
)

我正在使用 Pandas

read_xml()
函数来读取
xml.gz
格式的数据。我正在使用 Pandas
1.3.2
版本。当我尝试读取数据时,Pandas 读取数据错误。

数据如下所示。

colA
colB
都应该是字符串。

第一个数据文件:

<Data>
 <colA>abc</colA>
 <colB>168E3</colB>
</Data>
<Data>
 <colA>def</colA>
</Data>

第二个数据文件:

<Data>
 <colA>ghi</colA>
 <colB>23456</colB>
</Data>
<Data>
 <colA>jkl</colA>
</Data>

当我使用

read_xml()
功能时,如下所示:

第一个数据框:

colA: abc, def
colB: 168000.0, None

第二个数据框:

colA: ghi, jkl
colB: 23456.0, None

我想以

string
格式读取数据,但 pandas
dtype
中没有
1.3.2
参数。我想知道:

  1. 如何读取指定数据类型的数据?
  2. 当某列中缺少数据时,Pandas 将为该列分配 float 类型。如何避免,或者有什么设置可以配置读取数据时缺失值列的数据类型?

请注意,我只能使用这个 Pandas 版本,无法更新。

python pandas xml
1个回答
0
投票

我不知道如何设置读取选项,但你可以这样做:

df = pd.read_xml(file, xpath=".//Data" )
print(df.dtypes)
print()
df_fcol = df.astype({'colB': str})
print(df_fcol.dtypes)

输出:

colA     object
colB    float64
dtype: object

colA    object
colB    object
dtype: object
© www.soinside.com 2019 - 2024. All rights reserved.