Python dataframe函数将多行的值作为列表应用

Python dataframe函数将多行的值作为列表应用,python,pandas,list,function,dataframe,Python,Pandas,List,Function,Dataframe,我的问题是基于这一点的: 但是我需要一个函数,它可以应用于一列中几行的值,就像这些值是一个列表一样 例如,如果我选择类别c1,我的函数应该如下应用:f([3,5]) 我创建了一个自定义函数,在给定一个数据帧的情况下,该函数检查val中是否有任何重复项,以及val的大小是否小于10,以确定感兴趣的类别 df = pd.DataFrame({'user':['user 1','user 1','user 1','user 2','user 2','user 2'],

我的问题是基于这一点的:

但是我需要一个函数,它可以应用于一列中几行的值,就像这些值是一个列表一样

例如,如果我选择类别c1,我的函数应该如下应用:f([3,5])


我创建了一个自定义函数,在给定一个数据帧的情况下,该函数检查val中是否有任何重复项,以及val的大小是否小于10,以确定感兴趣的类别

df = pd.DataFrame({'user':['user 1','user 1','user 1','user 2','user 2','user 2'],
                   'category':['c1','c2','c3','c1','c2','c3'],
                   'val':[3,4,8,5,9,10]})

def custom_func(df, category):

    partial_df = df[df.category==category].copy()
    if len(partial_df.val)<10 and partial_df.val.duplicated().sum()>0:
        return True
    else:
        return False

custom_func(df, 'c1')
df=pd.DataFrame({'user':['user 1','user 1','user 1','user 2','user 2','user 2'],
‘类别’:[‘c1’、‘c2’、‘c3’、‘c1’、‘c2’、‘c3’],
'val':[3,4,8,5,9,10]})
定义自定义函数(df,类别):

部分_df=df[df.category==category].copy() 如果len(partial_df.val)为0: 返回真值 其他: 返回错误 自定义函数(df,'c1')
根据@Marco Cerliani的回答,我想我成功地解决了这个问题

数据帧首先出现在filter_关键字列中

这一点都不优雅

urls = ['url1','url2']

def size_check(df, URL):
    partial_df = df[df.URL==URL].copy()
    if len(partial_df.filter_keywords)<10: 
        return True
    else:
        return False

# true there is a duplicate. false there is no duplicate
def duplicate_check(df, URL):
    partial_df = df[df.URL==URL].copy()
    if partial_df.filter_keywords.duplicated().sum()>0:
        return True
    else:
        return False

def total_check(df, URL):
    if (not duplicate_check(df, url)) and size_check(df, url):
          print(url+" ok")
    else:
        print(url+" NOT ok")      

for url in urls:    
    total_check(df, 'URL')
URL=['url1','url2']
def大小检查(df,URL):
部分_df=df[df.URL==URL].copy()
如果len(部分过滤关键字)为0:
返回真值
其他:
返回错误
def总检查(df,URL):
如果(不重复检查(df,url))和大小检查(df,url):
打印(url+“确定”)
其他:
打印(url+“不正常”)
对于url中的url:
检查总数(df,‘URL’)

您可以分组,然后应用,您想应用什么功能?我们需要更多信息。更新您想要的最终结果。您要处理哪些行?标准是什么?我想处理的行:category=c1。该函数应用于列表(val列中的值),并检查列表中是否存在任何重复项,以及列表的大小是否低于10。partial_df=df[df.category==category]。copy()partial_df.val.duplicated().sum()>0:df[df.category==category]。copy()是对感兴趣的类别进行筛选,而df.val.duplicated().sum()是对感兴趣的类别进行筛选>0是用于验证感兴趣的列中是否存在重复项的检查
urls = ['url1','url2']

def size_check(df, URL):
    partial_df = df[df.URL==URL].copy()
    if len(partial_df.filter_keywords)<10: 
        return True
    else:
        return False

# true there is a duplicate. false there is no duplicate
def duplicate_check(df, URL):
    partial_df = df[df.URL==URL].copy()
    if partial_df.filter_keywords.duplicated().sum()>0:
        return True
    else:
        return False

def total_check(df, URL):
    if (not duplicate_check(df, url)) and size_check(df, url):
          print(url+" ok")
    else:
        print(url+" NOT ok")      

for url in urls:    
    total_check(df, 'URL')