<分区>
我有一个 pandas DataFrame,其中一列 resources
由一个元组列表组成。例如,采用以下 DataFrame:
df = pd.DataFrame({"id": [1, 2, 3],
"resources": [[(1, 3), (1, 1), (2, 9)],
[(3, 1), (3, 1), (3, 4)],
[(9, 0), (2, 6), (5,5)]]
})
现在,我想将以下列添加到我的 DataFrame,其中包含以下内容:
- 一列
first
包含一个列表,其中包含resources
中元组的唯一第一个元素(因此基本上是所有第一个元素的集合) - 列
second
包含一个列表,其中包含resources
中元组的唯一第二个元素(因此基本上是所有第二个元素的集合) same
列包含resources
中具有相同第一和第二元素的元组数- 一列
different
包含resources
中具有不同第一和第二元素的元组数
所需的输出列如下所示:
首先
:[[1, 2], [3], [9, 2, 5]]
第二个
:[[1, 3, 9], [1, 4], [0, 6, 5]]
相同
:[1, 0, 1]
不同
:[2, 3, 2]
如何以最省时的方式实现呢?我首先想到使用 Series.str
,但在那里找不到足够的功能来实现我的目标