【发布时间】:2019-06-17 16:34:54
【问题描述】:
我有两个数据框,每个数据框有一列具有相同的值(和相等的长度),但顺序不同,如简化示例中所示;
df1=pd.DataFrame(['a','b','c','d','e'],columns=['names'])
df2=pd.DataFrame(['b','e','a','c','d'],columns=['names'])
我想知道df2中df1中每一行对应的索引,然后做;
df= pd.merge(df1.reset_index(), df2.reset_index(), on=['names'])
这有效,正如本示例所预期的那样,数据帧的长度等于len(df1)=len(df2)=len(df)
但是在我的真实数据中,len(df1)=len(df2)=1714 和 len(df)=1676
我很疑惑,这怎么可能?
我刚刚做了一个实验并添加了重复项。
df1=pd.DataFrame(['e','a','b','c','d','e'],columns=['names'])
df2=pd.DataFrame(['b','e','a','e','c','d'],columns=['names'])
df= pd.merge(df1.reset_index(), df2.reset_index(), on=['names'])
这使得 len(df)=8 大于 len(df1)=len(df2)=6。
但在我的真实数据中,df 小于单个 df 长度。
【问题讨论】:
标签: python-3.x pandas