Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 如何创建将应用于条件的函数_Python_Pandas - Fatal编程技术网

Python 如何创建将应用于条件的函数

Python 如何创建将应用于条件的函数,python,pandas,Python,Pandas,这里没有任何人,任何人的帮助都将不胜感激。 我需要创建一个函数,该函数将基于来自同一数据帧的不同系列(国家)上的条件值应用于数据帧上的pandas系列(zipcode) 我创建的函数 ## function for retrieving only numeric characters num_pattern = '(\d+)' def numeric(x,y): try : a = re.search(x,y).group() except: a

这里没有任何人,任何人的帮助都将不胜感激。 我需要创建一个函数,该函数将基于来自同一数据帧的不同系列(国家)上的条件值应用于数据帧上的pandas系列(zipcode)

我创建的函数

## function for retrieving only numeric characters
num_pattern = '(\d+)'

def numeric(x,y):
    try :
        a = re.search(x,y).group()
    except:
        a = None
    return a

df['zip'] = df['zip'].apply(lambda x: numeric(num_pattern,x)) 

仅当my
df['country']
列中的值等于
'US'

时,才需要传递此函数。您可以在df行上应用:

df['zip'] = df.apply(lambda x: numeric(num_pattern,x['zip']) if x['country']=='US' else x['zip'], axis=1) 

你真的需要条件在函数中吗?否则你可以使用
.loc
这样你的函数将只应用于“我们”这应该可以做到:
df['zip']=df.apply(lambda x:numeric(x.col_1),axis=1)
@JuanC你能分享一个例子吗?如果你能编辑你的文章,包括这里概述的例子,那会很有帮助:例如,向我们展示一个包含3或4行、2或3列且
df=pd.DataFrame的“before”数据框示例({..
然后,通过手动创建所需的结果来再次执行此操作。(此外,请阅读链接文章并将其应用于您的问题。)谢谢!但我收到此错误消息indexer:('country','accurrented at index email'))即使有axis=1参数?哇,我真是个白痴,如果我在上面滚动的话会有帮助的。非常感谢!