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)
您可以使用pd.Index.intersection或其语法糖&:
intersection_cols = df1.columns & df2.columns
res = df1[intersection_cols]
Run Code Online (Sandbox Code Playgroud)
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)