Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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
Python lambda和apply用于搜索数据帧中的值_Python_Pandas - Fatal编程技术网

Python lambda和apply用于搜索数据帧中的值

Python lambda和apply用于搜索数据帧中的值,python,pandas,Python,Pandas,我试图使用lambda和函数从数据帧中搜索并返回特定值。知道怎么处理吗?有没有办法将整个df传递到lambda,或者这是一种糟糕的做法?我已将尝试的代码附加到此处。任何帮助都将不胜感激 我的代码基于以下内容: 除了我的数据框中有时会重复的值,有时一行现在会有我正在搜索的值 这是一种糟糕的做法,因为有些本机方法会使用底层的c代码来运行比普通python循环快得多的代码。你能发布你的输入数据框以及你想要达到的目标吗?另请参见Thank@Umar.H,我附上了数据框的屏幕截图。基本上,如果您注意到id

我试图使用lambda和函数从数据帧中搜索并返回特定值。知道怎么处理吗?有没有办法将整个df传递到lambda,或者这是一种糟糕的做法?我已将尝试的代码附加到此处。任何帮助都将不胜感激

我的代码基于以下内容: 除了我的数据框中有时会重复的值,有时一行现在会有我正在搜索的值


这是一种糟糕的做法,因为有些本机方法会使用底层的
c
代码来运行比普通python循环快得多的代码。你能发布你的输入数据框以及你想要达到的目标吗?另请参见Thank@Umar.H,我附上了数据框的屏幕截图。基本上,如果您注意到id 1在其状态为“a”时没有状态代码,但在稍后变为状态“b”时,它会收到状态代码“z”。我正试图将状态代码“z”添加到第一行。稍后id4也可能有一个状态代码,比如“x”,我想将“x”附加到id4上,但只有当id4稍后确实收到状态代码时,我认为您可以分别使用
fillna
bfill()
ffill()
正向填充和反向填充。如果需要向前填充,请尝试
df.replace(“”,np.nan,regex=True).groupby('col1(ids)]['statuscode'].bfill()
,只需在末尾添加chain
.ffill()
。p.s屏幕截图不是一个简单的示例,您需要添加数据帧的文本示例,以便其他人复制。
def    getvalue(col1value,col2value): #i check to see if col1value matches a hard coded value, and if so, I return a single value from the original dataframe
        if colvalue1=='HardcodedValue':
           return df.loc[df['col2']==colvalue2,col3value].iloc[0] #fetches value, since it returns a series i grab the first match
        else:
           return 0
    
    df['new']=df.apply(lambda row: getvalue(row['col1'],row['col2']))