如何使用熊猫计算列中的字符串?

时间:2021-03-30 06:26:43

标签: python pandas

我有以下数据集。

game_id h_abbr a_abbr 
0001    WSH    TOR 
0002    ANA    TOR 
0003    TOR    MIN

我想计算到目前为止每支球队打了多少场比赛。输出应该是这样的

game_id h_abbr a_abbr ht_game_no at_game_no
0001    WSH    TOR    1          1
0002    ANA    TOR    1          2
0003    TOR    MIN    3          1

1 个答案:

答案 0 :(得分:4)

使用DataFrame.set_indexDataFrame.stack作为MultiIndex Series,然后使用GroupBy.cumcount作为计数器,通过Series.unstack重塑,添加rename并添加到原始DataFrame.join 的数据帧:

s = df.set_index('game_id')[['h_abbr','a_abbr']].stack()

d = {'h_abbr':'ht_game_no','a_abbr':'at_game_no'}
df = df.join(s.groupby(s).cumcount().add(1).unstack().rename(columns=d), on='game_id')
print (df)
   game_id h_abbr a_abbr  ht_game_no  at_game_no
0        1    WSH    TOR           1           1
1        2    ANA    TOR           1           2
2        3    TOR    MIN           3           1