【发布时间】:2020-01-22 04:05:52
【问题描述】:
我有一个数据框,其中两列的列表元素具有一对一的关系。 PhoneNumber 和 PhonePrimary?.
PhoneNumber PhonePrimary City Zip
__________________________________________________
[2107788451, [True,
2107788451, True, San Antonio 71541
2107788451] False]
-----------------------------------------------------
[5126508976, [True,
5124430261] False] Austin 78750
其他列只是奇异值元素,独立于这些列。我想将这些系列元素过滤到PhoneNumber 中的列表元素仅与PhonePrimary 的真实值匹配的元素。订单一致。有没有办法在不为结果创建新列的情况下做到这一点,比如使用过滤器?
结果如下:
PhoneNumber PhonePrimary City Zip
__________________________________________________
[2107788451, [True,
2107788451] True] San Antonio 71541
----------------------------------------------------
[5126508976] [True] Austin 78750
【问题讨论】:
-
在您给定的示例中,值是作为数组/列表存储在一行中,还是在您的
DataFrame中存储为 3 行? -
过滤掉是什么意思?您能否举一个原始数据帧的虚拟示例,以及预期的结果是什么?
-
@r.ook 这两列的每一行都是一个不同大小的数组。有时数组只是像 [6502352235] 这样的一个元素,但它们始终是数组。
-
@JasonChia 我已经在我的问题中编辑了示例。就结果而言,每一行的值应该只是“PhonePrimary”的“True”和“PhoneNumber”的匹配电话号码。所以数组长度会减少,但仍然是数组。所以这些数组元素被过滤了。但其他列不受影响,“City”和“Zip”
标签: python pandas dataframe filtering