在按索引对数据帧进行分组之后,我将应用lambda函数。此函数向原始组添加两个元素。
df.groupby(df.index).apply(lambda x: fun(x.col))
其中函数为:
def fun(x):
return np.r_[np.repeat(x[:1],2),x,np.repeat(x[:-1],2)]
但是,它为每个组返回一个列表,
33 [0.9526133823707408, 0.9526133823707408, 0.952...
14 [0.7399641356312007, 0.7399641356312007, 0.739...
16 [0.9932682467249898, 0.9932682467249898, 0.993...
40 [0.8378176113760183, 0.8378176113760183, 0.837...
如何展开这些列表,使列表中的每个元素都显示为一个新行,并具有相应的索引?(就像df的原始结构一样)
我尝试添加一个.apply(pd.series),但它会将每个元素展开到一个新列中。
原始结构:
33 0.952613
33 0.929144
33 0.903109
33 0.876384
33 0.850252
33 1.185296
33 1.155291
33 1.119522
...