美文网首页
pandas笛卡尔积操作

pandas笛卡尔积操作

作者: 鹰了个鹰 | 来源:发表于2019-06-10 16:26 被阅读0次

今天处理数据的时候需要对DataFrame的两列做笛卡积操作,一开始使用merge方法,奈何一直爆内存,只能用for循环的形式来写,只是这样的速度实在太慢。先用笨办法解决掉吧,记录一下,有没有兄台有更巧妙地方法,还请不吝赐教啊。

match = pd.read_csv('../input/match.csv')
match.head()
image.png

方法一时间换空间

def merge_match(match):

    A = pd.DataFrame(match['paper_id'])
    B = pd.DataFrame(match['press_id'])

    A.columns = ['paper_id']
    B.columns = ['press_id']

    newDf = pd.DataFrame(columns=['paper_id','press_id','labels'])
    for i, A_row in A.iterrows():
        for j, B_row in B.iterrows():
            Adata = A_row['paper_id']
            Bdata = B_row['press_id']
            if i == j :
                label = 1
            else:
                label = 0
            row = pd.DataFrame([dict(paper_id=Adata,press_id=Bdata,labels=label)])
            newDf = newDf.append(row,ignore_index=True)

    return newDf

方法二空间占用较大,速度快

def merge_match(match):
  A = pd.DataFrame(match['paper_id']
  B = pd.DataFrame(match['press_id']

  A['value'] = 1
  B['value'] = 1
  
  newDf = pd.merge(A,B,on='value')

return newDf

相关文章

  • pandas笛卡尔积操作

    今天处理数据的时候需要对DataFrame的两列做笛卡积操作,一开始使用merge方法,奈何一直爆内存,只能用fo...

  • 笛卡尔积

    Pandas如何实现相当于SQL交叉连接(笛卡尔积) https://www.cnpython.com/qa/14...

  • Oracle学习(2)

    多表查询: 会出现笛卡尔积,为了避免出现笛卡尔积,要使用where 语句对字段进行关联操作 左右连接 (+)在=左...

  • 关系模型之关系代数

    关系操作 : 集合操作——并、交差、笛卡尔积、 纯关系操作——投影、选择、连接、除 并相容性投影操作是从给定关系中...

  • 三、连接查询

    内连接 1、笛卡尔积 语法 无条件筛选 有条件筛选 什么是笛卡尔积?笛卡尔积就是将A和B表中的行任意组合,得到一个...

  • 笛卡尔积

    笛卡尔积,是指集合A中元素与B中元素所有的两两组合。 如A=(a,b),B=(1,2),那么笛卡尔积为(a1,a2...

  • 笛卡尔积

    笛卡尔乘积:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积表示为...

  • 笛卡尔积

    之前写一个SKU的插件,用到了【笛卡尔积】,明白其原理,但是就是写不出来 看来功力尚浅,需要努力 后来借鉴了网上的...

  • 笛卡尔积

    1.什么笛卡尔积 百科:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又...

  • 笛卡尔积

    首先知道啥是笛卡尔积,百度百科中解释是这样的: 笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesia...

网友评论

      本文标题:pandas笛卡尔积操作

      本文链接:https://www.haomeiwen.com/subject/dgozxctx.html