如何根据DataFrame的house列值为tax_home列填入1或0?
问题解决方法
你的代码存在几处错误导致无法运行:
- 条件判断误用赋值符号
=,应该用比较符号== apply传入的函数参数是house列的单个值,你却直接操作整个DataFrame列df1['house']- 返回语句里的
df1['tax_home'] = 1是赋值操作,不能作为返回值使用
修正后的apply写法
def set_tax_home(x): if x == "Own": return 1 else: return 0 df1['tax_home1'] = df1['house'].apply(set_tax_home)
更高效的向量化实现(推荐)
相比apply,向量化操作速度更快,适合处理大数据集:
import numpy as np df1['tax_home1'] = np.where(df1['house'] == "Own", 1, 0) # 或者更简洁的写法 df1['tax_home1'] = (df1['house'] == "Own").astype(int)
内容的提问来源于stack exchange,提问作者Mat-mong
相关产品推荐
相关产品推荐

