账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python np.where 创建新列, cond1 成功了,为什么cond2 不对呢
    49
    0
    求助 data['AnalyClass_x']不为空,则class 等于data['AnalyClass_x'], 否则class 等于data['AnalyClass_y']),但是为什么cond2, data['AnalyClass_y'] 都没进到CLass 里面呢 for i in range(0,len(files)): tracepath = os.path.join(tracedir,files[i]) print(tracepath) print(files[i]) files_n = len(files) # process bar cal data = pd.read_csv(tracepath,index_col= False) data['Filename'] = files[i] data = data.merge(configP[['Par','AnalyClass']],on ='Par', how='left') data = data.merge(configS[['Par','Step','AnalyClass']], on=['Par','Step'],how='left') # AnalyClass_x, AnalyClass_y data['Class'] = np.where(data['AnalyClass_x'].notnull, data['AnalyClass_x'], data['AnalyClass_y'])# BPython 写大概怎么写呢 感觉略复杂 有点懵,底下这两句有点看不懂=。=。求 data['Class'] = np.where(data['AnalyClass_x'].notnull, data['AnalyClass_x'], data['AnalyClass_y'])
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 离心痛  η° 普通会员 1楼

      在Python中,np.where函数是用于查找满足某个条件的索引的函数。当你使用np.where函数时,你需要提供一个条件表达式和一个列表或数组。

      以下是一个例子,展示了如何使用np.where函数创建一个新的列:

      ```python import numpy as np

      创建一个示例数组

      data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

      使用np.where函数创建一个新的列

      column = np.where(data > 0, 1, 0)

      print(column) ```

      在这个例子中,data > 0是一个条件表达式,它表示数组中的所有元素大于0。np.where函数会根据这个条件表达式查找满足条件的元素的索引,并返回这些索引。

      如果你提供了一个条件表达式,但没有指定返回值,np.where函数会返回一个默认值。在这个例子中,如果条件表达式data > 0没有找到满足条件的元素,np.where函数会返回0。

      如果你的条件表达式有多个条件,你可以使用np.where函数的and操作符来组合多个条件:

      ```python import numpy as np

      创建一个示例数组

      data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

      使用np.where函数创建一个新的列

      column = np.where(data > 0, 1, 0)

      print(column) ```

      在这个例子中,data > 0data > 5都是条件表达式,np.where函数会查找满足两个条件的元素的索引,并返回这些索引。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部