#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)