您如何索引列中的所有行并获取特定元素以在Python中创建新列? '10'111319次 '21'111236次

问题描述

当前,我正在开发自己的项目,并且尝试创建基于if语句条件的新列,在该条件下,我尝试从列中返回索引元素。我在索引所有行时遇到问题,然后获取我想要的特定索引。

概述:

数据集名称= fivb_2019

“结果”是对象栏和排球比赛的最终比分。我正在尝试使用此列的索引元素来创建一个新列,例如(set_one_points)

行值示例
数据框中的第5-7行包含以下值

                       0-2 (10-21,16-21) 
                       

我正在尝试为主队获得索引值[5:7],为客队获得索引值[8:10]

for i in fivb_2019['Result']:
print (i[5:7])

当我运行此for循环时,我可以产生我希望用于该列的所有结果,但是当我将此for循环放入函数中时,我只返回主队在索引[5:7]处的值10 ]并在索引[8:10]处取值为21。这是函数

def fill_set_one (Result,teamid,home_teamid):
    for i in fivb_2019['Result']:
    
        if home_teamid == teamid:
            return (i[5:7])
        
        else:
            return (i[8:10])

fivb_2019['set_one_points'] = fivb_2019.apply(lambda x: fill_set_one(x['Result'],x['teamid'],x['home_teamid']),axis=1)

函数运行,但是新列[set_one_points]的value_counts结果仅返回以下值:

fivb_2019['set_one_points'].value_counts()

'10'111319次

'21'111236次

我认为,当我尝试在函数i([5:7])中建立索引时,它可能仅捕获第五至第七列和字符串索引“ 10”。因为在代码的最后一行中,您可以看到在第223765行以及其他行中,返回的结果应该为13。

                              1-2 (13-21,21-14,11-15)

其他行示例

                       2-1 (16-21,21-18,22-20)
                       2-1 (18-21,23-21,16-14)
                       2-0 (21-19,21-19)

只是感到困惑,为什么我不能在函数中返回所有结果来创建新列。

非常感谢您的帮助。

凯尔

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)