微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据当前数据框添加缺失的行并将列值设置为零

如何解决根据当前数据框添加缺失的行并将列值设置为零

dic= {'distinct_id': {0: 1,1: 2,2: 3,3: 4,4: 5},'first_name': {0: 'Joe',1: 'Barry',2: 'David',3: 'marcus',4: 'Anthony'},'activity': {0: 'Jump',1: 'Jump',2: 'Run',3: 'Run',4: 'climb'},'tasks_completed': {0: 3,1: 3,3: 3,4: 1},'tasks_available': {0: 3,4: 3}}

tasks = pd.DataFrame(dic)

我试图让每个 id/name 对为每个独特的活动都有一行,例如我希望“Joe”有活动列是“Run”和“climb”的行,但我希望他在 tasks_completed 列中有一个 0(那些行不存在已经意味着他没有完成这些活动任务)。我曾尝试使用 df.iterrows() 并列出唯一 ID 和活动名称并检查它们是否都存在,但是没有用。非常感谢任何帮助!

这就是我希望拥有的:

  1: 2,4: 5,5: 1,6: 1,7: 2,8: 2,9: 3,10: 3,11: 4,12: 4,13: 5,14: 5},'email': {0: 'Joe',4: 'Anthony',5: 'Joe',6: 'Joe',7: 'Barry',8: 'Barry',9: 'David',10: 'David',11: 'marcus',12: 'marcus',13: 'Anthony',14: 'Anthony'},4: 'climb',5: 'Run',6: 'climb',7: 'Run',8: 'climb',9: 'Jump',10: 'climb',11: 'climb',12: 'Jump',13: 'Run',14: 'Jump'},4: 1,5: 0,6: 0,7: 0,8: 0,9: 0,10: 0,11: 0,12: 0,13: 0,14: 0},4: 3,5: 3,6: 3,7: 3,8: 3,11: 3,12: 3,13: 3,14: 3}}
pd.DataFrame(tasks_new)

解决方法

idx_cols = ['distinct_id','first_name','activity']
tasks.set_index(idx_cols).unstack(fill_value=0).stack().reset_index()

    distinct_id first_name activity  tasks_completed  tasks_available
0             1        Joe    Climb                0                0
1             1        Joe     Jump                3                3
2             1        Joe      Run                0                0
3             2      Barry    Climb                0                0
4             2      Barry     Jump                3                3
5             2      Barry      Run                0                0
6             3      David    Climb                0                0
7             3      David     Jump                0                0
8             3      David      Run                3                3
9             4     Marcus    Climb                0                0
10            4     Marcus     Jump                0                0
11            4     Marcus      Run                3                3
12            5    Anthony    Climb                1                3
13            5    Anthony     Jump                0                0
14            5    Anthony      Run                0                0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?