python中两个数据帧的笛卡尔积

python中两个数据帧的笛卡尔积,python,python-3.x,dataframe,Python,Python 3.x,Dataframe,我有两个dataframe,如何从笛卡尔数据集中删除类似的行 **DF1:** Index Name 0 xyz 1 abc 2 def **DF2:** Index Name 0 xyz 1 abc 2 xyz **Expected Output** (0,0),**(0,2)** (1,1) 我只想组合

我有两个dataframe,如何从笛卡尔数据集中删除类似的行

 **DF1:**
    Index    Name
    0       xyz
    1       abc
    2       def


    **DF2:**
    Index    Name
    0       xyz
    1       abc
    2       xyz


    **Expected Output**
    (0,0),**(0,2)**
    (1,1)
我只想组合名称列相同的索引,但不想显示重复的组合。也就是说,当我使用笛卡尔指数(0,2)和(2,0)时,会得到相同的结果。所以我只想显示一行

更新:


我已经有一个笛卡尔数据框作为输入,它是 (0,0)、(0,2)、(1,1)、(2,0)


我想要的是,从这个输入数据帧中,我想要删除重复的(2,0)。我在数据帧中有大约100行,所以我也想循环使用。

假设
df1
df2
有一个单独的列“Name”,并且“Index”是索引,并且您想要一个包含匹配索引的元组列表,如问题中所示,您可以执行以下操作:

df1 = pd.DataFrame({'Name': ['xyz', 'abc', 'def']})
df2 = pd.DataFrame({'Name': ['xyz', 'abc', 'xyz']})
df3 = df1.reset_index().merge(df2.reset_index(), on='Name', how='inner')
list_of_tuples = [tuple(item) for item in df3[['index_x', 'index_y']].values]
list_of_tuples 
# OUTPUT: [(0, 0), (0, 2), (1, 1)]

如果“Index”是列名,只需删除
reset\u Index()
命令。

什么是“数据集”
pandas
DataFrames?是的,它的DataFrames,我已经更新了我的问题:-)连接类型是inner@PrathikKini你运行我的代码并得到错误的结果了吗?得到这个[(0.0,0.0),(0.0,2.0),(1.0,1.0),(2.0,nan)]@PrathikKini谢谢你,你是对的。我后来添加了
how='left'
,忘记了
pd.merge()
的默认值是“内部”而不是“左”。我已经有一个笛卡尔数据框作为输入,它是(0,0),(0,2),(1,1),(2,0),我想要的是,从这个输入数据框中删除重复的(2,0)。我在数据帧中有大约100行,所以我也想循环。