我有一个 Pandas 数据框。某些列只有 2 个唯一值(例如好/坏、高/低、失败/通过)。它们的 dtype 是 object,因为数据帧是从 CSV 文件加载的。
我想将这些列转换为 True/False,并自动将列名更改为 is_FIRST_VALUE。
例如,
X1 X2 X3
HIGH FAIL GOOD
HIGH PASS GOOD
LOW FAIL BAD
应该转换:
X1_is_HIGH X2_is_FAIL X3_is_GOOD
True True True
True False True
False True False
请您参考如下方法:
你可以试试这个。遍历每一列。获取列的第一个唯一值。条件是该行是否包含此唯一值。因为我们想要条件的结果,只需将该值设置为该列。
df = pd.DataFrame({
'X1' : ['HIGH', 'LOW', 'HIGH', 'HIGH'],
'X2' : ['FAIL', 'PASS','FAIL', 'PASS'],
'X3' : ['GOOD','GOOD', 'BAD', 'BAD']
})
for column in df.columns:
uni = df[column].unique()[0]
mask = df[column] == uni
df[column] = mask
df.rename(columns = {column:column+'_'+uni}, inplace=True)
X1_HIGH X2_FAIL X3_GOOD
0 True True True
1 False False True
2 True True False
3 True False False
