python中pandas计数_python-如何在Pandas Dataframe中迭代计数

我想一直计数一个值,直到pandas / python中的当前位置为止.必须考虑一个条件(“得分”列中必须存在数字,才能将游戏计为已玩游戏;如果我读取的excel文件中没有值,则显示为NaN).

下面的代码是我的位置:

import pandas as pd

df = pd.read_excel('G:\Project\SOQ1.xlsx')

df['date'] = pd.to_datetime(df['date'])

df = df.sort(columns='date')

df = df.set_index('date')

def calc_all_count(team_name):

home_count = df['home'].value_counts().get(team_name, 0)

away_count = df['away'].value_counts().get(team_name, 0)

all_count = home_count + away_count

return all_count

def calc_home_count(team_name):

home_count = df['home'].value_counts().get(team_name, 0)

return home_count

def calc_away_count(team_name):

away_count = df['away'].value_counts().get(team_name, 0)

return away_count

df['hag'] = df['home'].map(calc_all_count)

df['aag'] = df['away'].map(calc_all_count)

df['hahg'] = df['home'].map(calc_home_count)

df['aaag'] = df['away'].map(calc_away_count)

print df

league home away hscore ascore hag aag hahg aaag

date

2015-01-03 03:02:00 MLB Cle Tex 9 6 3 15 2 7

2015-05-10 03:03:00 MLB Bos Cle 6 7 16 3 7 1

2015-10-15 03:00:00 MLB Tex Bos 5 2 15 16 8 9

2015-10-15 03:30:00 MLB Tex Bos 1 6 15 16 8 9

2015-10-16 00:00:00 MLB Tex Bos 4 4 15 16 8 9

2015-10-17 03:30:00 MLB Bos Tex 2 8 16 15 7 7

2015-10-18 00:00:00 MLB Tex Bos 9 10 15 16 8 9

2015-10-20 00:00:00 MLB Bos Tex 2 3 16 15 7 7

2015-10-21 00:00:00 MLB Tex Bos 5 1 15 16 8 9

2015-10-22 03:00:00 MLB Tex Bos 5 3 15 16 8 9

2015-10-23 00:00:00 MLB Bos Tex 3 4 16 15 7 7

2015-10-25 23:00:00 MLB Bos Tex 6 6 16 15 7 7

2015-10-25 23:00:00 MLB Bos Tex 5 1 16 15 7 7

2015-10-26 00:00:00 MLB Tex Bos 9 6 15 16 8 9

2015-10-27 01:30:00 MLB Bos Tex 10 5 16 15 7 7

2015-10-28 01:00:00 MLB Tex Bos NaN NaN 15 16 8 9

2015-11-20 03:01:00 MLB Cle Bos NaN NaN 3 16 2 9

我想要的是每个游戏之前没有玩过的游戏.因此,由于没有人玩过,因此第一局/每行的所有数字都应读为0.应该看起来像这样:

league home away hscore ascore hag aag hahg aaag

date

2015-01-03 03:02:00 MLB Cle Tex 9 6 0 0 0 0

2015-05-10 03:03:00 MLB Bos Cle 6 7 0 1 0 0

2015-10-15 03:00:00 MLB Tex Bos 5 2 1 1 0 0

2015-10-15 03:30:00 MLB Tex Bos 1 6 2 2 1 1

2015-10-16 00:00:00 MLB Tex Bos 4 4 3 3 2 2

2015-10-17 03:30:00 MLB Bos Tex 2 8 4 4 1 1

2015-10-18 00:00:00 MLB Tex Bos 9 10 5 5 3 3

2015-10-20 00:00:00 MLB Bos Tex 2 3 6 6 2 2

2015-10-21 00:00:00 MLB Tex Bos 5 1 7 7 4 4

2015-10-22 03:00:00 MLB Tex Bos 5 3 8 8 5 5

2015-10-23 00:00:00 MLB Bos Tex 3 4 9 9 3 3

2015-10-25 23:00:00 MLB Bos Tex 6 6 10 10 4 4

2015-10-25 23:00:00 MLB Bos Tex 5 1 11 11 5 5

2015-10-26 00:00:00 MLB Tex Bos 9 6 12 12 6 6

2015-10-27 01:30:00 MLB Bos Tex 10 5 13 13 6 6

2015-10-28 01:00:00 MLB Tex Bos NaN NaN 14 14 7 7

2015-11-20 03:01:00 MLB Cle Bos NaN NaN 2 14 1 7

我该如何计算“之前”的当前位置?我想我应该使用.iloc或.ix,但我不知道.

任何帮助实现此或更好的代码表示赞赏.提出这个问题的技巧也更好.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值