我正在编写一个Python脚本,用于比较每个组的最大值。我认为必须有更美妙的方式使用pandas
提供的方法或不使用全局变量,例如previous_max
在下面的代码片段中。请告诉我怎么做。
import pandas as pd
import numpy as np
previous_max = 0
def f(x):
global previous_max
if x.max() >= previous_max:
previous_max = x.max()
return "ascending"
else:
previous_max = x.max()
return "descending"
df = pd.DataFrame({
'date': pd.date_range('2000-1-1', periods=100, freq='D'),
'val': np.random.random(100)
})
df['trend'] = df.groupby(pd.TimeGrouper(key='date', freq='10D'))['val'].transform(f)