gpt4 book ai didi

python - 如何将 value_counts() 输出转换为数据帧?

转载 作者:行者123 更新时间:2023-12-01 02:50:41 25 4
gpt4 key购买 nike

我有一个像这样的数据框:

match       team1       team2       winner
1 MI KKR MI
2 DD CSK DD
3 RCB DC RCB.....

我想计算的是一支球队在锦标赛中战胜另一支球队的次数。就像MI vs KKR:

MI:10

KKR:5

所以我写了一个这样的函数:

def comparator(team1):
mt1=matches[((matches['team1']==team1)|(matches['team2']==team1))]
teams=['MI','KKR','RCB','DC','CSK','RR','DD','GL','KXIP','SRH','RPS','KTK','PW']
teams.remove(team1)
opponents=teams.copy()
for i in opponents:
mt2=mt1[(((mt1['team1']==i)|(mt1['team2']==i)))&((mt1['team1']==team1)|(mt1['team2']==team1))].winner.value_counts()
print(mt2)
comparator('MI')

现在,在函数中,mt2 打印出 team1 和 team2 各自胜利的正确值。输出如下:

MI     13
KKR 5
Name: winner, dtype: int64
MI 11
RCB 8
Name: winner, dtype: int64

现在输出正确,但格式不合适。我想将以下输出转换为数据帧。

我尝试将值附加到列表中,但它不起作用,因为 Name: Winner, dtype: int64 行也被附加到列表中。

如何将其转换为数据框?

最佳答案

我认为你需要:

如果需要索引作为列添加 Series.reset_index :

mask = (((mt1['team1']==i)|(mt1['team2']==i)))&((mt1['team1']==team1)|(mt1['team2']==team1))
mt2 = mt1.loc[mask, 'winner'].value_counts().reset_index()

或者如果需要Series转换为一列DataFrame添加Series.to_frame :

mask = (((mt1['team1']==i)|(mt1['team2']==i)))&((mt1['team1']==team1)|(mt1['team2']==team1))
mt2 = mt1.loc[mask, 'winner'].value_counts().to_frame()

最好还是使用loc使用 bool 掩码并定义列。

关于python - 如何将 value_counts() 输出转换为数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44819119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com