如何更改列的每个单独的值

时间:2019-08-12 00:53:27

标签: python pandas dataframe

在我的数据框中,我有两个关于纬度和经度的列,它们当前为float类型。它的所有值都是小数点后六位数字,因此该列的第一个值将是45.392503,下一个将是45.309583,以此类推。

我希望这两列中的每个值都被截断为小数点后3位。

我尝试过的事情:

# for i, j in zip(df['LAT_CTR'], df['LONG_CTR']):
#     i = '%.3f' % (i)
#     j = '%.3f' % (j)

OR

# for i in range(0, len(df['LONG_CTR'])):
#     df['LONG_CTR'][i] = '%.3f' % (i)

我当时想使用.astype('float64')来转换整个列,但似乎还没走那么远

因此,我正在阅读其他答案,一个可能适用于我的建议是使用列表理解来创建一个执行此操作的函数,类似[f(x) for i in df['LAT_CTR']]的方法可以工作吗?有没有更快的方法来应用这些更改?

1 个答案:

答案 0 :(得分:1)

只需使用内置的回合函数

df['LONG_CTR'] = [round(x, 3) for x in df['LONG_CTR'].tolist()]