Python 如何从一个数据帧中删除行,将其与另一个数据帧进行比较,并仅保留匹配的索引?
如果我有Python 如何从一个数据帧中删除行,将其与另一个数据帧进行比较,并仅保留匹配的索引?,python,pandas,Python,Pandas,如果我有 df1 = pd.DataFrame(rand(6,6), index = 'A B C D E F'.split(), columns = 'U V W X Y Z'.split()) df2 = pd.DataFrame(rand(3,6), index = 'B D E'.split(), columns = 'U V W X Y Z'.split()) 如何从df1中删除与df2中的索引不匹配的行?我希望能够在df1的其余行中保留原始值。尝试以下操作: df1.join(df
df1 = pd.DataFrame(rand(6,6), index = 'A B C D E F'.split(), columns = 'U V W X Y Z'.split())
df2 = pd.DataFrame(rand(3,6), index = 'B D E'.split(), columns = 'U V W X Y Z'.split())
如何从df1中删除与df2中的索引不匹配的行?我希望能够在df1的其余行中保留原始值。尝试以下操作:
df1.join(df2, rsuffix='_2', how='inner')[df1.columns]
输出:
U V W X Y Z
B 3 7 0 5 6 0
D 4 9 6 8 0 9
E 0 6 1 6 8 6
我发现这同样有效:
df1[df1.index.isin(df2.index)]
你想保留什么?不在df2中的两个数据帧或行之间的公共索引?我希望保留公共索引。因此,在这种情况下,当更新时,df1将有索引为B、D和E的行。另外,我的原始数据帧有几百行,所以我不想手动执行,而是通过索引匹配。