如何使用groupby提取特定数据并使用提取的数据生成新列?

2024-06-12 10:51:36 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

所以我有电影名称,日期,收入的数据集。同一部电影有多行,有一列显示累计收入。我想提取某部电影的上一次累计收入,并创建一个新列,然后在某部电影的第一行插入提取的值。 例如,我想知道如何提取电影“a”的最后收入,电影“b”的最后收入。。并将这些值插入每部影片的新列的第一行。所以在这张图中,电影a是D2,电影b是D33,等等

df['Date'] = pd.to_datetime(df['Date']) df = df.sort_values('Date') df.groupby('Movie name')['Revenue accumulated'].last()


Tags: to数据名称dfdatetimedate电影movie
1条回答
网友
1楼 · 发布于 2024-06-12 10:51:36

您可以执行以下操作。但我建议将它们替换为np.nan(即不为空),因为这应该是末尾的数字列

def get_last_as_first(grp):
  return  pd.Series([grp.iloc[-1]] + [np.nan]*(grp.shape[0]-1))

df['Date'] = pd.to_datetime(df['Date']) 
df = df.sort_values('Date')
new_col = df.groupby('Movie name')['Revenue accumulated'].transform(get_last_as_first)

相关问题 更多 >