【问题标题】:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
【发布时间】:2016-12-01 04:49:08
【问题描述】:

我是熊猫新手。 我正在尝试使用以下代码为数据框中的一列分配一个负号。但是当我这样做时,我得到如下错误。 我尝试了以下代码

INTERNAL_DEBIT = InternalTxns[InternalTxns['type'].isin(['INTERNAL_DEBIT','INTERNAL'])]

new_amnt = (INTERNAL_DEBIT['amount']*-1)

但我需要将此负值分配给仅匹配条件并获取整个数据。我正在寻找更简单和更少的编码。

我阅读了其他类似错误的帖子,但大多数都不是为了类似的要求。

提前致谢。

InternalTxns[[InternalTxns["type"] in ["INTERNAL_DEBIT","INTERNAL_TRANSFER_REVERSAL"]],'amount']=InternalTxns[[InternalTxns["type"] in ["INTERNAL_DEBIT","INTERNAL_TRANSFER_REVERSAL"]],'amount']*-1

【问题讨论】:

  • IIUC:InternalTxns.loc[InternalTxns["type"].isin(["INTERNAL_DEBIT","INTERNAL_TRANSFER_REVERSAL"]),'amount']=InternalTxns['amount']*-1
  • 非常感谢@EdChum 的快速响应,但我想这会导致'amount']= 处的语法错误
  • 对不起,你执行了这行代码?
  • 感谢您的帮助。 !,是的,刚才,它确实给出了语法错误。
  • InternalTxns.loc[InternalTxns["type"].isin(["INTERNAL_DEBIT","INTERNAL_TRANSFER‌​_REVERSAL"]),'amount'] *= -1 怎么样?另外,在 SO 上,发布原始数据或数据链接以及代码和所需输出而不是图像是一种常见的形式

标签: python pandas dataframe


【解决方案1】:

您可以使用在isin 中使用的原始掩码和loc 仅覆盖这些值:

InternalTxns.loc[InternalTxns["type"].isin(["INTERNAL_DEBIT","INTERNAL_TRANSFER‌​‌​_REVERSAL"]),'amount'] *= -1

【讨论】:

    猜你喜欢
    • 2019-01-24
    • 2020-05-27
    • 1970-01-01
    • 2021-03-21
    • 2021-05-27
    • 2021-04-07
    • 2022-12-29
    • 2018-07-09
    • 2020-02-12
    相关资源
    最近更新 更多