python - 累积新柱?python pandas中的窗口函数?
问题描述
我对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 函数一样工作
解决方案
在 pandas 中,它会这样写:
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
推荐阅读
- php - php curl代理请求被阻止
- angular - 如何保持角度 PWA 在打盹模式下运行
- sql-server - 无法在 64 位模式下运行 SSIS 包 2015
- visual-studio-code - AL(Business Central OnPremises)中的扩展中的对象 ID 冲突
- pycharm - Pycharm(VM初始化时出错)
- php - 为什么在发送请求 HTTP GET|POST laravel 时变成无穷大
- sharepoint-2013 - Power Apps:在新屏幕上显示表格行
- javascript - React Native 高亮显示项目并返回索引警报
- haskell - Haskell,sum(x,y) 与 sum(x,y,z) 之间的差异
- javascript - 如何拖动一个
并在 Javascript 中放置标签