pandas dataframe在列的子集上使用剪辑

时间:2018-02-19 16:05:55

标签: python pandas dataframe deep-copy

我仍然对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))

0 个答案:

没有答案