以下是一个示例代码,展示了如何在保留"createDummyFeatures"函数中的列名作为参考的方式:
import pandas as pd
def createDummyFeatures(df, reference_col):
# 获取需要创建虚拟变量的列
cols_to_dummy = df.select_dtypes(include=['object']).columns.tolist()
cols_to_dummy.remove(reference_col)
# 创建虚拟变量
dummy_features = pd.get_dummies(df[cols_to_dummy])
# 将虚拟变量添加到原始数据框中
df = pd.concat([df, dummy_features], axis=1)
return df
# 示例数据框
data = {'col1': ['A', 'B', 'C', 'A', 'B'],
'col2': ['X', 'Y', 'Z', 'Y', 'X'],
'col3': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)
# 调用函数并保留"col1"列名作为参考
df = createDummyFeatures(df, 'col1')
print(df)
这个示例中,我们传入数据框df
和参考列名'col1'
到createDummyFeatures
函数中。函数首先获取需要创建虚拟变量的列,然后移除参考列。接下来,使用pd.get_dummies
函数创建虚拟变量,并将虚拟变量添加到原始数据框中。最后,返回更新后的数据框。
输出结果为:
col1 col2 col3 col2_X col2_Y col2_Z
0 A X 1 1 0 0
1 B Y 2 0 1 0
2 C Z 3 0 0 1
3 A Y 4 0 1 0
4 B X 5 1 0 0
可以看到,新创建的虚拟变量列名为原始列名col2
加上对应的取值,同时参考列名col1
并未被创建为虚拟变量。