在逐行移动时如何在python中使用Apply函数

data_minD:

如果有人一年内在会员名单中获胜,我想在“获胜者”栏中输入0或1。有一本获奖字典。

award_winner = {'2010':['Momo','Dahyum'],'2011':['Nayeon','Sana'],'2012':['Moon','Jihyo']}

这是数据帧:

df = pd.DataFrame({'member':[['Jeong-yeon','Momo'],['Jay-z','Bieber'],['Kim','Moon']],'year' : ['2010','2011','2012']})

在此处输入图片说明

从数据框架中,我想查看基于字典的每年(数据框架的年份)是否有获奖者。

例如,让我们看第一行。Momo于2010年获胜,Moon于2012年获胜,因此数据框的预期输出应如下所示:

在此处输入图片说明

所以这是到目前为止的代码:

df['winner'] = 0 #empty coloumn
def winner_classifier():
  for i in range(len(df['member'])): #searching if there are any award winner in df
    if df['member'][row][i] in award_winner[df['year'][row]]: #I couldn't make row to 
      return 1
    else:
      continue
df['winner'] = df['member'].apply(winner_classifier) 

要么

在这里,我无法分配行。我希望代码能够根据字典中的年份确定是否有获奖者。因此,代码应逐行检查,但我不能,

我总结了这样的问题,以在堆栈溢出中询问。但是有超过10,000行,我认为如果使用熊猫“ apply”来解决这个问题是可能的。已经在不使用熊猫的情况下尝试了两次for loop,这花费了太长时间。我试图使用groupby()但我想知道我应该如何使用..喜欢..

df['winner'] = df['year'].groupby().apply(winner_classifier)..?

你能帮我吗?

谢谢 :)

穆吉加:

从字典创建df,以便稍后合并

winners = pd.DataFrame({
    'year' : list(award_winner.keys()),
     'winner': list(award_winner.values())})
print (winners)
   year          winner
0  2010  [Momo, Dahyum]
1  2011  [Nayeon, Sana]
2  2012   [Moon, Jihyo]

现在合并并找到奖励与会员的交集

result = df.merge(winners, on="year")
result['result']  = result.apply(
    lambda x: len(set(x.member).intersection(x.winner)) != 0, axis=1)
result = result.drop(['winner'], axis=1)
print (result)
               member  year  result
0  [Jeong-yeon, Momo]  2010    True
1     [Jay-z, Bieber]  2011   False
2         [Kim, Moon]  2012    True

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

开发NeuralNetwork时如何在python中使用sigmoid函数

Bash脚本-如何在使用getopts时逐行读取文件

如何在python中使用yield函数

在Python中使用turtle.write时如何移动文本?

如何在python中使用GetEffectiveRightsFromAcl函数?

在Python中使用Splice移动函数

如何在Julia中使用Python函数?

如何在python函数中使用ffmpeg

如何在python数据帧中使用熊猫移动值?

在跨两个不同数据帧映射索引时,如何在熊猫中使用apply函数?

如何在R中使用Apply-Family函数使用〜函数符号?

如何在python中使用map,reduce,apply或其他函数转换DataFrame(在此示例中)?

如何在Python中使用round()函数?

如何在使用OpenCV python播放时移动视频窗口

如何在类(python / pygame)中使用if语句(键移动)添加函数?

如何在python中使用sqlalchemy调用mysql函数?

在Python中如何在调用函数中使用变量?

如何在Python中使用nltk.corpus逐行读取和标记文本文件

如何在python中使用一个print()逐行打印列表项-而不是一连串?

如何在python中使用for循环逐行读取

如何在python中使用随机函数?

如何在R中的apply函数中使用行号

如何在Python中使用参数、函数

你如何在python中使用函数之外的递增变量?

如何在 python 函数中使用 .startswith() ?

如何在 BigQuery 中使用 SPLIT 和 CROSS APPLY 函数

如何在python中使用apply函数和lambda循环遍历json对象?

在R中使用apply或map函数时如何将列名传递给函数?

Neo4j,当目标匹配“属性”是列表时,如何在 python 中使用匹配函数?