Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从一个数据帧中删除行,将其与另一个数据帧进行比较,并仅保留匹配的索引?_Python_Pandas - Fatal编程技术网

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的行。另外,我的原始数据帧有几百行,所以我不想手动执行,而是通过索引匹配。