问题描述
我有几个表的数据集。一些字段重叠,但是在某些表上它们可能具有一对多关系,而在其他表上它们可能具有一对一关系。我正在尝试创建一个新的数据框,在这里我可以将与一个字段关联的值(一对一)和与同一字段关联但在另一个表中的值(一对一),并在新数据框上列出所有这些值(一对多)。
一个数据框:
finishtId eventId instanceId ... value statusId finishType
0 1 18 1 ... 218.3 1 Positive
1 2 18 2 ... 217.586 1 Positive
2 3 18 3 ... 216.719 1 Positive
3 4 18 4 ... 215.464 1 Positive
4 5 18 5 ... 218.385 1 Negative
另一个数据框:
eventId instanceId red blue time duration milliseconds
0 841 153 1 1 17:05:23 26.898 26898
1 841 30 1 1 17:05:52 25.021 25021
2 841 17 1 11 17:20:48 23.426 23426
3 841 4 1 12 17:22:34 23.251 23251
4 841 13 1 13 17:24:10 23.842 23842
5. 841. 153. 2 45. 17:45:30. 24.786. 26473
... ... ... ... ... ... ...
7633 1036 822 2 48 16:20:38 22.143 22143
7634 1036 1 2 50 16:23:05 21.853 21853
7635 1036 849 2 49 16:24:00 22.475 22475
7636 1036 154 2 62 16:42:16 24.010 24010
7637 1036 822 3 64 16:42:47 22.607 22607
我想创建一个新的数据框,将dataframe2中的所有值(红色,蓝色,时间,持续时间,毫秒)附加到instanceId和eventId字段中,以便dataframe1显示一对多关系。我还想创建一个新字段,告诉我每个instanceId和eventId(numRed)有多少红色,基本上是这样的:
eventId instanceId red numRed blue ... time duration value statusId finishType
0 841 153 1 2 17 ... 17:05:23 26.898 218.3 1 Positive
1 841 153 2 2 52 ... 17:45:30 24.786 217.586 1 Positive
1 841 146 1 1 40 ... 17:32:30 24.986 217.586 1 Negative
因此,基本上为每个eventId的每个instanceId列出了每个红色,蓝色,时间,持续时间,值,statusId和finishType。我是Pandas的新手,所以我一直在研究各种功能,但是我总是遇到通常与数据类型(float vs str)相关的错误……
更新:从Edunne获得解决方案后,我意识到我认为对数据集更好的工作实际上是另外一回事。我宁愿向下合并每个“事件ID”的每个“实例ID”的“红色”值的行。不同的值将被平均,因此“持续时间”的平均值和“值”字段的平均值。看起来像这样:
eventId instanceId numRed ... duration value statusId finishType
0 841 153 2 ... 25.842 218.3 1 Positive
1 841 146 1 ... 24.986 217.586 1 Negative
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)