首页 > 解决方案 > 如何仅剪辑一列数据框

问题描述

我有一个由 3 列组成的熊猫数据框:从 [datetime64] 到 [datetime64],值 [float64]。我只想将“值”列剪辑为最大值。

df = dfo.clip(upper=100)

失败了TypeError: Cannot compare type 'Timestamp' with type 'int'

如何仅在数据框的列上进行剪辑?

标签: pandas

解决方案


您可以指定列:

dfo['value'] = dfo['value'].clip(upper=100)

如果可能,多列:

cols = ['value', 'another col']
dfo[cols] = dfo[cols].clip(upper=100)

或者,如果需要剪辑所有数字列,则按以下方式过滤它们DataFrame.select_dtypes

cols = df.select_dtypes(np.number).columns
dfo[cols] = dfo[cols].clip(upper=100)

推荐阅读