在 Pandas 系列上使用 .str 将所有数据转换为 NaN float64 类型
Using .str on Pandas Series converts all data to NaN float64 type
我正在尝试在我的 Pandas 系列中使用 .str 以使用字符串运算符方法,但是 .str 将我的所有数据转换为 NaN float64 数据类型。 Pandas 系列是一个对象数据类型。
下面我展示了我的API系列,然后尝试对其执行拆分方法。
In [80]:
wellinfo['API'].head()
Out[80]:
0 3501124153
1 3501124154
2 3501124155
3 3501124185
4 3501725290
Name: API, dtype: object
In [81]:
wellinfo['API'].str.split("0")
Out[81]:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
...
1537 NaN
1538 NaN
1539 NaN
1540 NaN
1541 NaN
1542 NaN
Name: API, Length: 1543, dtype: float64
我浏览了 Pandas 文档,但无法找出它转换所有内容的原因。除了 split 方法之外,我还尝试了多种方法,结果相同。
如有任何信息,我们将不胜感激。谢谢。
简单地select str 值并在这种情况下进行替换操作。在其他不是str returns NaN的值上。使用 Series.fillna
:
wellinfo['API'].str.split("0").fillna(wellinfo['API'])
或修改整数值:
wellinfo['API'].astype(str).str.split("0")
按照@Mstaino 的建议
我正在尝试在我的 Pandas 系列中使用 .str 以使用字符串运算符方法,但是 .str 将我的所有数据转换为 NaN float64 数据类型。 Pandas 系列是一个对象数据类型。
下面我展示了我的API系列,然后尝试对其执行拆分方法。
In [80]:
wellinfo['API'].head()
Out[80]:
0 3501124153
1 3501124154
2 3501124155
3 3501124185
4 3501725290
Name: API, dtype: object
In [81]:
wellinfo['API'].str.split("0")
Out[81]:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
...
1537 NaN
1538 NaN
1539 NaN
1540 NaN
1541 NaN
1542 NaN
Name: API, Length: 1543, dtype: float64
我浏览了 Pandas 文档,但无法找出它转换所有内容的原因。除了 split 方法之外,我还尝试了多种方法,结果相同。
如有任何信息,我们将不胜感激。谢谢。
简单地select str 值并在这种情况下进行替换操作。在其他不是str returns NaN的值上。使用 Series.fillna
:
wellinfo['API'].str.split("0").fillna(wellinfo['API'])
或修改整数值:
wellinfo['API'].astype(str).str.split("0")
按照@Mstaino 的建议