分组依据和设置列值

2024-04-24 22:08:51 发布

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

我有一个关于熊猫数据帧操作的问题。 假设我有一个数据帧

    DF
    A   Date    C
0   1   1-jan   0
1   1   2-jan   1
2   1   3-jan   0
3   2   4-jan   0
4   2   5-jan   0
5   2   6-jan   1
6   3   7-jan   1
7   3   8-jan   0
8   3   9-jan   0

如果我们假设A列是account\u id,那么我要做的是,对于每个account,如果在该日期之前(基于date列),我们已经在该列C中观察到1,则将列C的值设置为1。例如,对于帐号1,我将使C列中的所有值在1月2日之后等于1。对于帐号3,1月7日后所有C列值都将为1。

    Output
   A    Date    C
0   1   1-jan   0
1   1   2-jan   1
2   1   3-jan   1
3   2   4-jan   0
4   2   5-jan   0
5   2   6-jan   1
6   3   7-jan   1
7   3   8-jan   1
8   3   9-jan   1

Tags: 数据iddfoutputdateaccountjan帐号
1条回答
网友
1楼 · 发布于 2024-04-24 22:08:51
df['C'] = df['C'].replace(0 , np.nan)
df['C'] = df.groupby('A')['C'].fillna(method = 'ffill').fillna(0)



Out[14]:
    A   Date    C
0   1   1-jan   0
1   1   2-jan   1
2   1   3-jan   1
3   2   4-jan   0
4   2   5-jan   0
5   2   6-jan   1
6   3   7-jan   1
7   3   8-jan   1
8   3   9-jan   1

相关问题 更多 >