Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 如果有一个循环_Pandas_Loops_If Statement - Fatal编程技术网

Pandas 如果有一个循环

Pandas 如果有一个循环,pandas,loops,if-statement,Pandas,Loops,If Statement,这有点奇怪,我没有一个示例数据帧,但如果有人能帮助的话,那就太好了 我有3列A、B和C C可能为空/nan 我是说,如果C是空的,A和B等于上面一行的A和B的值。然后将C设置为与上面一行的C相同的值 这就是我目前所拥有的。它正在运行,但不改变C的值 for i, row in df.iterrows(): if df['C'][i]==np.nan: if df[['A','B']][i]==df[['A','B']][i-1]: df['C']

这有点奇怪,我没有一个示例数据帧,但如果有人能帮助的话,那就太好了

我有3列A、B和C

C可能为空/nan

我是说,如果C是空的,A和B等于上面一行的A和B的值。然后将C设置为与上面一行的C相同的值

这就是我目前所拥有的。它正在运行,但不改变C的值

for i, row in df.iterrows():

    if df['C'][i]==np.nan:
        if df[['A','B']][i]==df[['A','B']][i-1]:
            df['C'][i]=df['C'][i-1]
        else:
            pass
    else:
        pass
有人知道为什么这可能不起作用吗

非常感谢

我也尝试过这个,但是这个代码根本不起作用

 for i, row in df.iterrows():

    if df['C'][i]==np.nan & df[['A','B']][i]==df[['A','B']][i-1]:
            df['C'][i]=df['C'][i-1]

    else:
        pass       
因此,df:

A    B    C
w    4    t
w    4
a   r     c
输出应为:

  A    B    C
    w    4    t
    w    4    t
    a   r     c
你应该尝试:

你应该尝试:

您可以使用:

df['C'] = np.where((df['A']==df['A'].shift()) & (df['B']==df['B'].shift()) & (df['C'].isnull()), df['C'].shift(), df['C'] )
您可以使用:

df['C'] = np.where((df['A']==df['A'].shift()) & (df['B']==df['B'].shift()) & (df['C'].isnull()), df['C'].shift(), df['C'] )

工作得很好。谢谢lot@fred.schwartz很乐意帮忙:}工作得很好。谢谢lot@fred.schwartz很乐意帮忙:}感谢下面的人,我得到了答案。如果有人看到这个循环出了什么问题,请发表评论,因为我现在真的很好奇,多亏了下面的人,我才得到了答案。如果有人看到循环出了什么问题,请发表评论,因为我现在真的很好奇