如何在包含浮点数和Nan或None值的同一列中舍入浮点值?

时间:2019-03-28 22:40:31

标签: python python-3.x pandas jupyter-notebook

在DF中,我有一列包含floatstrNonenan值。

我只想舍入float值而不影响其他值。我试图使用掩码仅访问float值,但未成功。

如果解决方案可以使用本机pandas函数而不是迭代函数,我会更喜欢。

我的数据示例:

 index      Column A         Column B   
 1          57:24.1          98.67799997
 2          57:24.1          58.67799997
 3          57:53.8          95.66000009
 4          358:23.4         210.68099999
 5          None             35.10
 6          25.06778         None
 7          99999.565656     Abc
 8          abc              None

2 个答案:

答案 0 :(得分:0)

如何处理-它会检查该值是否为浮点数,如果是,则将其舍入为1,否则不执行任何操作:

df["Column B"].apply(lambda x: round(x,1) if isinstance(x,float) else x)

或者如果您想将此功能应用于数据框中的每个单元格,则:

df.applymap(lambda x: round(x,1) if isinstance(x,float) else x)

另请参阅:Apply function to each cell in DataFrame

答案 1 :(得分:0)

试试这个怎么样。可能有点贵但值得一试

df['Column B'] = [round(val,2) for val in df['column B'] if type(val)==float]