想象一下,我们有一个像df这样的DataFrame:
df = pd.DataFrame([('AL', 2, 0.3),
('WY', 4, 0.2),
('CO', 1, 0.9),
('WY', 6, 0.2),
('CO', 6, 0.1),
('CO', 8, 0.3),
('CO', 3, 0.2),
('TX', 2, 0.4),
('AL', 4, 0.4)],
columns=('ST', 'Case', 'Prob'))
我想将此数据帧拆分为单独的状态,并在Case列上运行diff()。到目前为止,我已经做到了: 我首先按状态和案例排序(我需要排序案例)。然后,通过“ ST”进行分组,并尝试使用一个称为Test的函数来进行diff(),但此dsnt起作用。我一直在阅读文档,发现对如何使用转换和应用感到困惑。有什么帮助吗?谢谢
def test(x):
return x.diff()
def daily_windowed_avg(df):
df= df.sort_values(by=['ST', 'Case'], ascending=[True, True])
df['Case diff'] = df.groupby(df['ST']).transform(lambda x: test(x), axis=1)
return df
daily_windowed_avg(df)