有新专栏吗?python中的窗口函数?

2024-05-15 22:42:08 发布

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

我对python和SQL比较陌生,需要一些帮助。 我有一个数据集,每个受试者都得到了任务的分数,它看起来是这样的(抱歉,不知道如何在这里编码df):

id     task     score
1      1        1
1      2        0
2      1        2
2      2        1
3      1        2
3      2        NaN

我想做一个新的列,每一行每一个科目的分数总和如下:

id     task     score  sum_score
1      1        1      1
1      2        0      1
2      1        2      3
2      2        1      3
3      1        2      2
3      2        NaN    2

感谢您的帮助,非常感谢您的任何帮助,书面或重定向我 我想这应该像SQL中的OVER函数一样工作


Tags: 数据id编码dftasksqlnan分数
1条回答
网友
1楼 · 发布于 2024-05-15 22:42:08

在熊猫中会这样写:

data = { "id" :  [1, 1, 2, 2, 3, 3],  "task" : [1, 2, 1, 2, 1, 2],  "score" : [1, 0, 2, 1, 2, np.nan]}
df = pd.DataFrame(data)

df["sum_score"] = df.groupby("id")["score"].transform(np.sum)

结果:

    id  task    score   sum_score
0   1   1        1.0      1.0
1   1   2        0.0      1.0
2   2   1        2.0      3.0
3   2   2        1.0      3.0
4   3   1        2.0      2.0
5   3   2        2.0

相关问题 更多 >