我有一个数据框,其中有一列包含字典。 我的任务是比较dict中的前两个值,如果它们相等,那么我想收集整行。我不能显示我的任何代码,因为我真的不知道如何组织这个。但我将创建一个我的DF的小示例,以使情况更加清楚
import pandas as pd
test = pd.DataFrame({'one':['hello', 'there', 'every', 'body'],
'two': ['a', 'b', 'c', 'd'],
'dict': [{'composition': 12, 'process': 4, 'pathology': 4},
{'food': 9, 'composition': 9, 'process': 6, 'other_meds': 3},
{'process': 2},
{'composition': 6, 'other_meds': 6, 'pathology': 2, 'process': 1}]})
test
因此,数据如下所示:
one two dict
0 hello a {'composition': 12, 'process': 4, 'pathology': 4}
1 there b {'food': 9, 'composition': 9, 'process': 6, 'other_meds': 3}
2 every c {'process': 2}
3 body d {'composition': 6, 'other_meds': 6, 'pathology': 2, 'process': 1}
我的目标是收集到索引为1和3的新数据帧行,因为dict的两个前值是相同的'food': 9, 'composition': 9
和'composition': 6, 'other_meds': 6
。索引号为0的行具有相同的值,但这并不有趣,因为它们不在第一和第二位置
我知道我们正在使用 loc
和 iloc
收集行。但是我不知道如何分配字典的条件。请帮忙
这个想法是你有一份口述的清单 由于钥匙不同,我们首先需要找出前两把钥匙(如果有的话)。接下来,我们获取我们学习的键并比较它们的值,如果它们匹配,我们将添加到列表中
你可以做:
输出
符号:
被称为extended iterable unpacking,请参见此answer以获得广泛的解释,而此post是入门教程
上面的特殊情况意味着取第一个,第二个忽略values中剩余的(
*_
)相关问题 更多 >
编程相关推荐