我确信我想做的事情对某些人来说一定是一个标准的事情,可能有一个特殊的名字(groupby,pivot,melt等),只是不管名字是什么我不知道,所以我似乎不能取得进展。
总结如下:
给定具有列A、B和C的帧DF1,我希望能够得到由DF1的所有行“x”组成的新帧DF2,对于这些行,A的值(称为“a [x]”)使得存在“某行y”(x可以或可以不等于y),其包含值的三元组(a [y],b [y],c [y]),使得a [x]==“a [y]”并且b [y]=“bbb”。
如果这听起来太令人困惑,假设数据框架是:
DF1 =
Person Possession Cost
Geoff Cat 3
Sue Cat 4
Geoff Dog 10
Geoff Cat 11
Mary Cat 1
Tom Dog 55
也就是说,与一般的陈述相比,我们有A =人,B =占有,C =成本。
然后,给定一个特定的所有权,例如“Cat”,我希望能够检索新帧:
DF2 =
Person Possession Cost
Geoff Cat 3
Sue Cat 4
Geoff Dog 10
Geoff Cat 11
Mary Cat 1
这是DF1的每一行,其中“Person”是“Cat Owner”(在本例中,其恰好是除“Tom”之外的所有人)。
我最初的想法是过滤“猫”来获得猫的主人,但这删除了行“杰夫狗10”。
我不想写缓慢的迭代(尽管我可以)。
谷歌并没有帮助我,因为我找不到一种比上面更简洁的措辞方式来表达我想做的事情。
这必须是一个标准的事情想要做,虽然,所以我希望有人更有经验会说“这只是一个XXXXXX的问题”,其中XXXXX是一个很好的专业搜索词,我得到进一步。
1条答案
按热度按时间mzillmmw1#
我不知道它的名字,但我一直在做这件事的方法是获取可能的值:
然后使用
.isin()