我有一个df,其中包含一列同时包含float和text值。
df.some_column
0 48.5182
1 58.2259
2 some string
3 48.5182
4 17.4928
我想将所有值都写到CSV,并将浮点数舍入为小数点后0位。因此,此列中的值为:
48
58
some string
48
17
当我用
df.to_csv(output_path,encoding='utf-8', index=False, float_format='%.0f')
该float_format
被忽略,我得到十进制值。如果我先删除带有字符串的行,则按float_format
预期使用。我四处寻找将值转换为int的方法,但没有找到在列上执行此操作的方法。
看起来我可以遍历所有值并四舍五入,但是我怀疑还有一些更优雅的方法。
您可以将dtype
to强制转换为str
,然后在小数点上分割并取整数部分:
In [70]:
df['some_col'] = df['some_col'].astype(str)
df['some_col'] = df['some_col'].loc[df['some_col'].str.contains('.')].str.split('.').str[0]
df
Out[70]:
some_col
index
0 48
1 58
2 some string
3 48
4 17
然后,当您打电话时,您to_csv
不需要float_format
参数
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句