在DF中,我有一列包含float
,str
,None
和nan
值。
我只想舍入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
答案 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)
答案 1 :(得分:0)
试试这个怎么样。可能有点贵但值得一试
df['Column B'] = [round(val,2) for val in df['column B'] if type(val)==float]