我有一个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
当我用
将其写入CSV时 df.to_csv(output_path,encoding='utf-8', index=False, float_format='%.0f')
float_format
被忽略,我得到十进制值。如果我先删除带有字符串的行,则会按预期使用float_format
。我四处寻找将值转换为int的方法,但是没有找到在列上执行此操作的方法。
看起来我可能会遍历所有值并围绕它们,但我怀疑还有一些更优雅的方式。
答案 0 :(得分:0)
您可以将dtype
转换为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
param