【问题标题】:Iterate over rows, if statement遍历行,if 语句
【发布时间】:2019-04-15 09:01:41
【问题描述】:

我在 Python 中有一个包含 4 列的数据框,我想根据这个 Excel 条件创建一个新列:=IF(AND(B2=B1;D2=D1;D2=14);1;0)。我是 Python 新手,不知道如何开始..

我应该创建一个 for 循环吗?如果是,如何引用上一行?

【问题讨论】:

  • "dataframe":这很模糊。你用熊猫吗?
  • 是的,我用的是熊猫
  • 您好,Eva,这个问题有点含糊,没有您要操作的数据的具体示例。我建议你学习 numpy 的基础知识,因为这使得操作数组变得非常容易。
  • 您正在根据其他 3 个列值创建一个新的真/假值。您只需要myvalue = B2==B1 and D2==D1 and D2==14 形式的表达式

标签: python pandas loops dataframe


【解决方案1】:

df['newCol'] 成为您的新列,下面的代码应该可以工作('B' 和 'D' 是各自的列名。

import pandas as pd
import numpy as np 
df = pd.DataFrame({'B': [1,2,2,3], 'D': [2,14,14,4]})
    print(df)

    >>> df
       B   D
    0  1   2
    1  2  14
    2  2  14
    3  3   4

    df['newCol']= [np.NaN]+[1 if (df.loc[i-1,'B']==df.loc[i,'B'] and df.loc[i-1,'d']==df.loc[i,'D'] and df.loc[i,'D']==14) else 0 for i in range(1,len(df))]
    print(df)

    >>> df
       B   D  newCol
    0  1   2  NaN
    1  2  14  0.0
    2  2  14  1.0
    3  3   4  0.0  

【讨论】:

    猜你喜欢
    • 2011-09-04
    • 1970-01-01
    • 2016-07-07
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多