df[condition]["wen_cha"] = df["bWendu"]-df["yWendu"]
时间: 2023-08-20 13:07:41 浏览: 62
根据你提供的代码,你想将 DataFrame 中满足条件的行的 "wen_cha" 列设置为 "bWendu" 列与 "yWendu" 列之间的差值。
然而,这行代码会引发一个警告或错误,因为它试图在一个切片上进行赋值操作,这在 pandas 中是不被支持的。
要实现你的需求,可以使用 `loc` 或 `iloc` 方法进行赋值操作。以下是正确的代码示例:
```python
df.loc[condition, "wen_cha"] = df.loc[condition, "bWendu"] - df.loc[condition, "yWendu"]
```
这行代码会将满足条件的行的 "wen_cha" 列设置为对应行的 "bWendu" 列与 "yWendu" 列之间的差值。请确保 `condition` 是一个布尔条件,用于选择满足条件的行。
相关问题
df.loc[condition, "wen_cha"] = df["bWendu"]-df["yWendu"]
根据你提供的代码,你想将 DataFrame 中满足条件的行的 "wen_cha" 列设置为 "bWendu" 列与 "yWendu" 列之间的差值。
这行代码可以实现你的需求,它会将满足条件的行的 "wen_cha" 列设置为对应行的 "bWendu" 列与 "yWendu" 列之间的差值。
请确保 `condition` 是一个布尔条件,用于选择满足条件的行。这行代码在满足条件的行上进行了赋值操作,将 "wen_cha" 列更新为 "bWendu" 列与 "yWendu" 列之间的差值。
(df["bWendu"] <= 30) & (df["yWendu"] >= 15) & (df["tianqi"] == '晴') &(df["aqiLevel"] == 1)
根据你提供的条件,我假设你想筛选满足以下条件的DataFrame:
- "bWendu" 列的值小于等于30
- "yWendu" 列的值大于等于15
- "tianqi" 列的值等于'晴'
- "aqiLevel" 列的值等于1
那么正确的代码应该是:
```python
df_filtered = df[(df["bWendu"] <= 30) & (df["yWendu"] >= 15) & (df["tianqi"] == '晴') & (df["aqiLevel"] == 1)]
```
这行代码会返回一个满足条件的新的DataFrame,其中包含符合条件的行。
阅读全文