import numpy as np
import pandas as pd
df = pd.DataFrame({
"id": [100, 100, 101, 102, 103, 104, 105, 106],
"A": [1, 2, 3, 4, 5, 2, np.nan, 5],
"B": [45, 56, 48, 47, 62, 112, 54, 49],
"C": [1.2, 1.4, 1.1, 1.8, np.nan, 1.4, 1.6, 1.5],
"Binary": [1, 1, 0, 1, 1, 0, 1, 0]
})
df
id A B C Binary
0 100 1.0 45 1.2 1
1 100 2.0 56 1.4 1
2 101 3.0 48 1.1 0
3 102 4.0 47 1.8 1
4 103 5.0 62 NaN 1
5 104 2.0 112 1.4 0
6 105 NaN 54 1.6 1
7 106 5.0 49 1.5 0
使用列表理解来获取二进制列的列名:
binary_cols = [col for col in df
if np.isin(df[col].dropna().unique(), [0, 1]).all()]
df[binary_cols]
输出:
Binary
0 1
1 1
2 0
3 1
4 1
5 0
6 1
7 0