我有一个数据框“b”,其中的数字存储为文本,如“12.5%”。 一列是:
1 NaN
2 NaN
3 1.2%
4 0.6%
5 NaN
6 1.4%
7 0.1%
8 NaN
9 5.1%
10 2.5%
11 89.1%
12 NaN
Name: Idaho, dtype: object
我编写了一个应用于每个列的函数:
^{pr2}$但当我尝试应用它时,我得到:
b.Idaho.apply(sinPorc)
AttributeError: 'float' object has no attribute 'replace'
我还创建了一个示例表,并应用了该函数,但在本例中有效:
ejemplo=pd.DataFrame({'A':['1.3%', 'NaN'],
'B':['1.3%', '0.7%']})
ejemplo.A.apply(sinPorc)
我得到了预期的结果:
1.3
NaN
Name: A, dtype: float64
我不知道为什么我不能将函数应用于原始表。可能是什么问题?我应该怎么做才能解决它?在
谢谢。在
原来的方法不起作用,因为NaN不是字符串,而是浮点值
np.NaN
试试这个。。。在
你会得到同样的错误。在
^{pr2}$您可以将
sinPorc
更改为这将保留您的
NaN
值,这些值对于其他Pandas功能很有用,或者您可以将该值强制为注释中提到的Nickil之类的字符串。在相关问题 更多 >
编程相关推荐