我有一个数据集已经加载到pandas DataFrame
中。当我打印 data.head()
时,显示如下。
G1 G2 G3 absences failures studytime romantic internet0 5 6 6 6 0 2 no no1 5 5 6 4 0 2 no yes2 7 8 10 10 3 2 no yes3 15 14 15 2 0 3 yes yes4 6 10 10 4 0 2 no no
我正在尝试创建一个线性回归模型,并希望将 romantic
和 internet
列中的’yes’和’no’转换为1和0。
我使用的代码如下:
df['romantic'].replace('yes', 0)df['romantic'].replace('no', 1)df['internet'].replace('yes', 0)df['internet'].replace('no', 1)
没有生效 🙁 也没有显示任何错误信息。
我尝试使用 data = df[["G1", "G2", "G3", "absences", "failures", "studytime", "romantic", "internet"]]
创建一个线性模型,结果显示:
ValueError: could not convert string to float: 'yes'
尽管我认为我已经进行了转换。请帮助我,谢谢…
回答:
要转换您感兴趣的两列,请运行以下代码:
df.romantic = (df.romantic == 'yes').astype(int)df.internet = (df.internet == 'yes').astype(int)
另请注意,您提到将’yes’和’no’转换为1和0,但在您的代码示例中,您尝试以相反的方式分配值。