将数据帧拆分为子数据帧,并与一行重新组合以表示数据帧

时间:2018-06-27 09:00:05

标签: python python-3.x pandas dataframe

我有一个初始数据帧df,我试图将其拆分为多个数据帧,这些数据帧仅包含定义的每个子数据帧的最后30个条目。我现在想创建一个新的数据框,每个子数据框只有一个值(30个点中所有值的平均值)。

我为df['PrsNr']中的每个唯一值创建最后30点的子数据帧

dfs = {k: df[df['PrsNr'] == k].iloc[-30:,:] for k in df['PrsNr'].unique()}

如何只用30个点的平均值创建一行并重新合并以创建新的数据框?

这似乎不起作用

dfs_1 = {k: df[df['PrsNr'] == k].iloc[-30:,:].mean() for k in df['PrsNr'].unique()}
df_1=pd.merge(dfs_1,how="right")

1 个答案:

答案 0 :(得分:1)

我认为需要groupby + tailmean

df1 = df.groupby('PrsNr').apply(lambda x: x.tail(30).mean())