df_dummies = pd.get_dummies(df,prefix='sales')什么意思
时间: 2024-06-06 18:07:57 浏览: 218
这行代码使用了pandas库中的get_dummies()函数,将df数据框中的所有分类变量(即离散型变量)转换为虚拟变量(dummy variable),生成一个新的数据框df_dummies。其中,prefix参数用于设置虚拟变量的前缀名,以便区分原始变量和虚拟变量。这通常是进行机器学习等任务时必要的一步,可以帮助模型更好地理解和处理离散型变量的信息。
相关问题
df_dummies = pd.get_dummies(df,prefix='sales')进行了什么操作
df_dummies = pd.get_dummies(df,prefix='sales') 对 pandas 数据框 df 进行独热编码操作,将其中的分类变量转换成数值变量,并且生成了一个新的数据框 df_dummies,新数据框中的列名由原来的分类变量值和指定的前缀 prefix(这里是 'sales')组成。
import pandas as pd from sklearn.ensemble import RandomForestRegressor titanic = pd.read_csv("D:/新建文件夹/实训/train.csv") ### 使用 RandomForestClassifier 填补缺失的年龄属性 def set_missing_ages(df): # 把已有的数值型特征取出来丢进Random Forest Regressor中 age_df = df[['Age', 'Fare', 'Parch', 'SibSp', 'Pclass']] # 乘客分成已知年龄和未知年龄两部分 known_age = age_df[age_df.Age.notnull()].values() unknown_age = age_df[age_df.Age.isnull()].values() # y即目标年龄 y = known_age[:, 0] # X即特征属性值 X = known_age[:, 1:] # fit到RandomForestRegressor之中 rfr = RandomForestRegressor(random_state=0, n_estimators=2000, n_jobs=-1) rfr.fit(X, y) # 用得到的模型进行未知年龄结果预测 predictedAges = rfr.predict(unknown_age[:, 1::]) # 用得到的预测结果填补原缺失数据 df.loc[(df.Age.isnull()), 'Age'] = predictedAges return df titanic = set_missing_ages(titanic) #将Embarked,Sex,Pclass转换成为onehot编码 dummies_Embarked = pd.get_dummies(titanic['Embarked'], prefix= 'Embarked') dummies_Sex = pd.get_dummies(titanic['Sex'], prefix= 'Sex') dummies_Pclass = pd.get_dummies(titanic['Pclass'], prefix= 'Pclass') df = pd.concat([titanic, dummies_Embarked, dummies_Sex, dummies_Pclass], axis=1) df.drop(['Pclass', 'Name', 'Sex', 'Ticket', 'Cabin', 'Embarked'], axis=1, inplace=True) print(df)
这段代码的问题可能是在以下这行代码:
```python
known_age = age_df[age_df.Age.notnull()].values()
```
这里的 values() 应该改成 values。
values() 是一个 pandas DataFrame 的方法,用来返回数据帧的值的 Numpy 数组形式。但是在这里,我们已经使用了 .values 属性来获取 age_df 的 Numpy 数组形式,所以不能再次使用 values() 方法。修改代码为:
```python
known_age = age_df[age_df.Age.notnull()].values
```
这样就可以避免这个错误了。
阅读全文