为pandas datafram中的所有值添加地板和天花板

2024-09-28 22:10:15 发布

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

我想为数据帧中的每个元素添加-3和3的地板和天花板

df=pd.DataFrame({'a':[4,-3,6,2],'b':[1,2,3,4],'c':[11,-4.5,2,6]})

最终结果应该显示

^{pr2}$

我通过遍历每个列然后使用

df['a'].apply(lambda x: -3 if x<-3 else (3 if x>3 else x))

有没有一种更优雅(python)的方法来实现这一点


Tags: 数据方法lambda元素dataframedfifelse
1条回答
网友
1楼 · 发布于 2024-09-28 22:10:15

使用^{}

df = df.clip(-3, 3).astype(int)

   a  b  c
0  3  1  3
1 -3  2 -3
2  3  3  2
3  2  3  3

整数转换是必需的,因为序列c最初是float。似乎pd.DataFrame.clip不会触发dtypes的重铸。在

相关问题 更多 >