Чтобы различать два столбца, вы можете использовать встроенную функцию панд diff()
.diff()
вычисляет разницу каждого элемента по сравнению с предыдущим.Но обратите внимание, что, поскольку первый элемент не имеет никакого предыдущего элемента, первый элемент в результате diff()
будет NaN
.Поэтому мы используем встроенную функцию dropna()
для сброса всех NaN
значений.
Но что касается обнаружения накопительных столбцов, я не думаю, что будет какой-либо путь.Вы МОЖЕТЕ найти все столбцы, которые всегда увеличиваются (монотонно), но это не означает, что они обязательно являются кумулятивными.
В любом случае для обнаружения монотонных столбцов вы можете сначала получить их diff().dropna()
, а затем проверьте, все ли положительные значения:
df = some_data_frame
col_diff = df['some_column'].diff().dropna()
is_monotonic = all(col_diff > 0)
Обратите внимание, что если вы забудете dropna()
, результат all(col_diff > 0)
всегда будет False
(поскольку NaN
значение Falsy)