迭代行,如果是政治家

2024-04-19 18:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: anddataframeforif条件excelb2b1
1条回答
网友
1楼 · 发布于 2024-04-19 18:35:42

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  

相关问题 更多 >