如何使用pandas中的if语句使列四舍五入

2024-05-29 11:54:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据框看起来像这样

 a           d         e
0 BTC  31913.1123   -6.5%
1 ETH   1884.1621  -18.8%
2 USDT     1.0       0.1%
3 BNB    294.0246   -8.4%
4 ADA      1.0342  -14.3%
5 XRP      1.1423  -10.5%

在d列上,如果d列中的浮点数大于10,我想将其四舍五入为整数。如果小于10,我想把它四舍五入到小数点后2位。这是我现在拥有的代码df1['d'] = df1['d'].round(2)。我如何对这段代码使用条件语句来根据条件进行循环


Tags: 数据代码整数语句条件ethbtcdf1
3条回答

使用^{}

df1['d'] = np.where(df1['d'] < 10, df1['d'].round(2), df1['d'].round())

您可以使用以下简单语句:

df1['d'][df1['d']>10]=df1['d'][df1['d']>10].round()
df1['d'][df1['d']<10]=df1['d'][df1['d']<10].round(2)

https://stackoverflow.com/a/31173785/7116645

参考上面的答案,你们可以简单地做如下事情

df['d'] = [round(x, 2) if x > 10 else x for x in df['d']]

相关问题 更多 >

    热门问题