在Python中计算多个列

时间:2017-10-28 16:00:17

标签: python count multiple-columns

我对Python很陌生并且已经在网上搜索了这个问题的答案,但是如果没有将其作为示例进行查找则很难找到!

我有数据的数据在这里: Dataset

我所追求的是每个家庭团队'已经出现在“家庭团队”和“家庭团队”中。和' AwayTeam'列到日期并包括日期。因此,对于样本中的最后一行数据,输入将是' Fulham',输出= 4.这是因为' Fulham'已经出现过4次在HomeTeam'和' AwayTeam'列。对于第一行数据,输入将是' Fulham',但输出= 1,因为这是第一次' Fulham'已经出现了。对于样本数据集,输出应为:

[1,1,2,1,3,1,4]

到目前为止,我的代码只允许我获得每个团队出现在' HomeTeam'仅限列:

df['H Count'] =  df.groupby(['HomeTeam']).cumcount()+1

这给了我输出:

[1,1,1,1,2,1,2]

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

据我了解,目前在HomeTeam的团队正在被用作输入。 我不知道您在数据集中的阅读方式,但我刚刚创建了以下列表。然而,逻辑应该是明确的。 有了以下内容,我得到[1, 1, 3]

HomeTeam = list()
HomeTeam.append("Fulham")
HomeTeam.append("Tottenham")
HomeTeam.append("Fulham")
AwayTeam = list()
AwayTeam.append("Chelsea")
AwayTeam.append("Fulham")
AwayTeam.append("Liverpool")
H_Count = []

p = 1
''' The team in the HomeTeam is used as input'''
for team in HomeTeam:
    ''' Get the list up until the current row'''
    tmp_Home = HomeTeam[:p]
    tmp_Away = AwayTeam[:p]

    ''' Count the number of times team has occured in home and away'''
    H_Count.append(tmp_Home.count(team) + tmp_Away.count(team))

    p+=1