我有一个这样的数据框 测向
1 2 3 4 5
0 1 1 1 0 0
1 1 1 0 0 0
2 1 0 0 1 1
3 1 1 0 1 0
4 0 1 1 0 0
我还有一本字典
dict = {(1, 2): 0,
(1, 3): 0,
(1, 4): 0,
(1, 5): 0,
(2, 1): 0,
(2, 3): 0,
(2, 4): 0,
(2, 5): 0,
(3, 1): 0,
(3, 2): 0,
(3, 4): 0,
(3, 5): 0,
(4, 1): 0,
(4, 2): 0,
(4, 3): 0,
(4, 5): 0,
(5, 1): 0,
(5, 2): 0,
(5, 3): 0,
(5, 4): 0}
我想要两件事: 首先,如果键(i,j)=键(j,i),将其移除,例如:键(1,2)和键(2,1) 我想删除(2,1),这样最终的dict将是
dict = {(1, 2): 0,
(1, 3): 0,
(1, 4): 0,
(1, 5): 0,
(2, 3): 0,
(2, 4): 0,
(2, 5): 0,
(3, 4): 0,
(3, 5): 0,
(4, 5): 0}
其次,我想更新数据帧df的值 如果dict中作为键的列具有相同的值1,则将其计数 例如:列1和列2的键(1,2)在同一行中有3次1,因此键(1,2)的值将更新为3,依此类推。。 所以最后的口述是
dict = {(1, 2): 3,
(1, 3): 1,
(1, 4): 2,
(1, 5): 1,
(2, 3): 2,
(2, 4): 1,
(2, 5): 0,
(3, 4): 0,
(3, 5): 0,
(4, 5): 1}
非常感谢你的帮助
我认为不需要启动dict,只要使用double for循环:
结果是:
希望有帮助
这似乎起到了作用:
输出:
(看起来您的示例至少有一个错误:结果(1,4)应该是3,而不是2,因为第2、3和4行与第1和4列匹配。)
相关问题 更多 >
编程相关推荐