报错的原因是试图将一个具有多列的 DataFrame 赋值给一个单列。df['gt_max']期望的是一个单列,而你试图赋值的是一个多列的 DataFrame。
可以用布尔索引来实现这个功能。具体方法如下:
df['gt_max'] = df['price'] == df['max_price']
这样,df['gt_max']将是一个布尔值列,表示price是否等于max_price。如果想要将这些布尔值转换成具体的值(比如1或0),可以使用 .astype(int):
df['gt_max'] = (df['price'] == df['max_price']).astype(int)
这个代码会创建一个新的列 gt_max,其中值为1表示price等于max_price,值为0表示price不等于max_price。