我仍然对pandas数据帧如何处理应用于整个数据帧切片的函数感到非常困惑。这就是我想做的事情..
我有一个数据框(通常会更大,列数更多!)
render_template("map.html", trends=trends)
我想将值1.262950e + 36剪辑为其他值,比如1000,这样数据框中的值(第3列除外)的值都不会大于1000。
我的尝试1
我尝试了以下内容:
>> df
one two three
0 NaN 0.0 1000
1 NaN 0.0 2000
2 1.262950e+36 NaN 3000
3 NaN NaN 4000
但它似乎无法正常工作
df.loc[:, df.columns.tolist()[:-1]].clip(upper=1000, inplace=True)
我的尝试2
所以我尝试了复制
>> df
one two three
7317 NaN 0.0 1
7318 NaN 0.0 2
7319 1.262950e+36 NaN 3
7320 NaN NaN 4
哪个有效,但显然太长而且不可读!
是否有更好,更快,更简洁,更pythonic的方式?
编辑:Dtypes
列的dtypes是
df.loc[:, df.columns.tolist()[:-1]] copy.deepcopy(df.loc[:, df.columns.tolist()[:-1]].clip(upper=1000))