dgo*_*mzi 2 python dataframe pandas
我想为数据框中的每个元素添加 -3 和 3 的地板和天花板
df=pd.DataFrame({'a':[4,-3,6,2],'b':[1,2,3,4],'c':[11,-4.5,2,6]})
Run Code Online (Sandbox Code Playgroud)
最终结果应该显示
a b c
0 3 1 3
1 -3 2 -3
2 3 3 2
3 2 3 3
Run Code Online (Sandbox Code Playgroud)
我通过运行每列然后使用
df['a'].apply(lambda x: -3 if x<-3 else (3 if x>3 else x))
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的(python)方法来做到这一点
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
Run Code Online (Sandbox Code Playgroud)
整数转换是必要的,因为系列c最初是 a float。它似乎pd.DataFrame.clip不会触发dtypes.
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |