gei*_*ate 6 python truncate dataframe pandas
我在两个靠近的数据框中有经度和纬度。如果我运行精确的相似性检查,例如
test_similar = test1_latlon.loc[~test1_latlon['cr'].isin(test2_latlon['cr'])]
Run Code Online (Sandbox Code Playgroud)
我遇到了很多失败,因为很多数字都偏离了小数点后第五位。我想截断小数点后第三位。我见过人们格式化,因此它显示被截断,但我想更改实际值。使用round()四舍五入数据,我会得到更多错误,那么有没有办法只删除小数点后 3 位呢?
con*_* yu 10
您可能想使用 numpy.trunc:
import numpy as np
import pandas as pd
df = pd.DataFrame([[1.2366, 1.2310], [1, 1]])
df1 = np.trunc(1000 * df) / 1000
print(df1, type(df1))
# 0 1
# 0 1.236 1.231
# 1 1.000 1.000 <class 'pandas.core.frame.DataFrame'>
Run Code Online (Sandbox Code Playgroud)
请注意,df1 仍然是一个 DataFrame 而不是 numpy.array
按照此处的建议,您可以执行以下操作:
x = 1.123456
float( '%.3f'%(x) )
Run Code Online (Sandbox Code Playgroud)
如果您想要更多小数位,只需将 3 更改为您需要的任何数字即可。
| 归档时间: |
|
| 查看次数: |
15483 次 |
| 最近记录: |