根据另一个 DataFrame 选择一个 DataFrame 的列

j. *_*DOE 5 python indexing intersection dataframe pandas

我试图根据另一个 DataFrame 的列选择 DataFrame 的子集。

数据框看起来像这样:

    a   b   c   d
0   0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15
Run Code Online (Sandbox Code Playgroud)

   a  b
0  0  1
1  2  3
2  4  5
3  6  7
4  8  9
Run Code Online (Sandbox Code Playgroud)

我想获取第一个数据帧的所有行,以获取两个数据帧中包含的列。我的结果应该是这样的:

    a   b   
0   0   1   
1   4   5   
2   8   9  
3  12  13    
Run Code Online (Sandbox Code Playgroud)

jpp*_*jpp 6

您可以使用pd.Index.intersection或其语法糖&

intersection_cols = df1.columns & df2.columns
res = df1[intersection_cols]
Run Code Online (Sandbox Code Playgroud)


ram*_*hin 3

import pandas as pd

data1=[[0,1,2,3,],[4,5,6,7],[8,9,10,11],[12,13,14,15]]
data2=[[0,1],[2,3],[4,5],[6,7],[8,9]]

df1 = pd.DataFrame(data=data1,columns=['a','b','c','d'])
df2 = pd.DataFrame(data=data2,columns=['a','b'])

df1[(df1.columns) & (df2.columns)]
Run Code Online (Sandbox Code Playgroud)