【发布时间】:2017-04-01 19:12:11
【问题描述】:
我正在尝试替换所有值在 pandas 数据框列 df.column_A如果它们在 1 到 10 的范围内。
但是,当我这样做时:
df.loc[(1 < df.column_A < 10), "Column_A"] = 1
生产:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
或者,当我这样做时:
df.loc[(df.column_A < 10) & (df.column_A > 1), "df.column_A"] = 1
我根本没有收到错误,但值没有被替换。
奇怪的是,当我这样做时:
df.loc[(df.column_A < 10) | (df.column_A > 1), "df.column_A"] = 1
正如我所料,df.column_A 中的所有值都将替换为 1。
这表示该行的语法是正确的,所以错误一定是由于一些我不明白的因素造成的。
我做错了什么?
【问题讨论】:
标签: python pandas dataframe multiple-conditions pandas-loc