>我有一个数据帧,我已经对其进行了分组,然后提取了 2 列值之间的斜率。代码如下。 grouped_full= data_train.groupby(['Cycle', 'Type'])
slope_full = (grouped_full.apply(lambda x: linregress(x['Time'], x['Values']).slope)).reset_index(name='Slope')
我在一个名为"斜率"的新列中得到了斜率。现在,我正在尝试对每个分组项目中的前 1700 行执行相同的操作。为了获得 1700 行,我使用了如下代码grouped_small = data_train.groupby(['Cycle', 'Type']).head(1700)
我已经打印并检查过,数据框很好。但是,当我尝试使用slope_small = (grouped_small.apply(lambda a: linregress(a['Time'], a['Values']).slope)).reset_index(name='Slope2')
提取斜率时,我遇到了错误
KeyError: ('Time', 'occurred at index Cycle')
它是完全相同的代码。我不确定为什么会遇到此错误。我应该怎么做才能修复它?
grouped_full"是一个pandas.core.groupby.generic.DataFrameGroupBy
因此Apply Comman将处理that.grouped_small是一个完整的数据帧pandas.core.frame.DataFrame
和apply将不起作用。所以我做了以下工作,它正在grouped_small = data_train.groupby(['Cycle', 'Type']).head(1700)
grouped_small2 = grouped_small.groupby(['Cycle', 'Type'])
slope_small = (grouped_small2.apply(lambda x: linregress(x['Time'], x['Values']).slope)).reset_index(name='Slope_small')