在熊猫中舍入到最接近的 1000

Ang*_*elo 8 python pandas data-science

我已经搜索了 pandas 文档和食谱,很明显您可以使用dataframe.columnName.round(decimalplace).

你如何用更大的数字做到这一点?

例如,我有一列房价,我希望它们四舍五入到最接近的 10000 或 1000 或其他。

df.SalesPrice.WhatDoIDo(1000)? 
Run Code Online (Sandbox Code Playgroud)

PaS*_*STE 12

通过使用符号df.ColumnName.round(),您实际上是在调用pandas.Series.round,其文档指定:

小数:整数

要四舍五入的小数位数(默认值:0)。如果小数为负数,则指定小数点左侧的位数。

所以你可以这样做:

df = pd.DataFrame({'val':[1,11,130,670]})
df.val.round(decimals=-2)
Run Code Online (Sandbox Code Playgroud)

这会产生输出:

0      0
1      0
2    100
3    700
Name: val, dtype: int64
Run Code Online (Sandbox Code Playgroud)

decimals=-3舍入到 1000 秒,依此类推。值得注意的是,它也可以使用pandas.DataFrame.round(),尽管文档没有告诉你:

df = pd.DataFrame({'val':[1,11,130,670], 'x':[1,11,150,900]})
df.round({'val':-2})
Run Code Online (Sandbox Code Playgroud)

这会将列四舍五入val到最接近的 100,但不要x管它。