Как обрезать только один столбец фрейма данных

#pandas

#pandas

Вопрос:

У меня есть фрейм данных pandas, состоящий из 3 столбцов: от [datetime64] до [datetime64], значение [float64]. Я просто хочу обрезать столбец «значение» до максимального значения.

df = dfo.clip(upper=100)

сбой с TypeError: Cannot compare type 'Timestamp' with type 'int'

Как я могу обрезать только столбец фрейма данных?

Ответ №1:

Вы можете указать столбец:

 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)
  

Ответ №2:

Вы также можете использовать inplace=True , чтобы избежать назначения:

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