【问题标题】:Application of function that produces new column based on other Dataframe Conditions应用基于其他数据框条件生成新列的函数
【发布时间】:2020-11-07 17:15:33
【问题描述】:

我正在尝试编写一个函数,如果满足某些条件,则从现有列中获取 X 坐标并将其乘以负 1。该函数编译得很好,但是一旦我将它应用于感兴趣的列,我就会不断收到The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 错误消息。

我的功能:

def xCoordFlip(xCoord):
  for xCoord in df['xCoord']:
    if df.loc[(df.period == 2) & (df.period == 4) & (df.name == 'A')]:
      return df['xCoord'] *-1
    if df.loc[(df.period == 1) & (df.period == 3) & (df.name == 'A')]:
      return df['xCoord']
    if df.loc[(df.period == 2) & (df.name == 'B')]:
      return df['xCoord'] *-1
    if df.loc[(df.period == 1) & (df.period == 3) & (df.name == 'B')]:
      return df['xCoord']

基本上,我想编写一个函数,它采用 X 坐标并在满足某些条件时翻转它。我猜我对布尔条件及其应用的理解还很遥远,因此我们将不胜感激。

【问题讨论】:

    标签: python pandas function dataframe boolean


    【解决方案1】:

    您现在应该使用“and”而不是“&”,而您现在使用的是按位与而不是布尔与

    其实我这里好像错了。

    Truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()

    这似乎很好地回答了你的问题。

    【讨论】:

    • 我之前尝试过,当我将它应用于数据框列时得到了相同的错误消息
    • 我在试图找出问题所在时发现了这个问题,无法理解我如何在我的函数中准确地应用它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    相关资源
    最近更新 更多