繁体   English   中英

熊猫:DataFrame的嵌套迭代

[英]Pandas: Nested iteration of DataFrame

我有一个包含两列的数据框:“ rep_id”和“ values”。 第二列是数字列表。

我想计算“ rep_id”的所有可能对,然后找到这些对共有的值。

最终的数据框看起来像:“ rep_id1”,“ rep_id2”,“ values”,其中“ values”表示“ rep_id1”和“ rep_id2”列表之间的公共元素列表。

一种实现方法是创建一个嵌套循环并遍历rep_id对,但我似乎找不到一种实现方法。

http://en.wikipedia.org/wiki/Cartesian_product

import pandas as pd

df = pd.DataFrame(zip(['A','B','C','D','E','A','B','C','A'],[1,2,3,4,5,2,3,5,5]),columns=['rep_id','val'])

df = df.sort('val')

cartesian_product = pd.merge(df, df,on='val')
cartesian_product = cartesian_product[cartesian_product['rep_id_x'] != cartesian_product['rep_id_y']]
cartesian_product[['val','rep_id_x','rep_id_y']]

df:

  rep_id  val
0      A    1
1      B    2
5      A    2
2      C    3
6      B    3
3      D    4
4      E    5
7      C    5
8      A    5

笛卡尔积:

    val rep_id_x rep_id_y
2     2        B        A
3     2        A        B
6     3        C        B
7     3        B        C
11    5        E        C
12    5        E        A
13    5        C        E
15    5        C        A
16    5        A        E
17    5        A        C

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM