gpt4 book ai didi

python - 根据 Python 中的条件从 DataFrame 中提取上一个日期数据

转载 作者:行者123 更新时间:2023-12-04 10:44:09 26 4
gpt4 key购买 nike

所以我是 Python 的新手,并且有一个关于根据给定团队的上一个日期从 df 中提取数据的问题。这是我正在看的一个例子;

import Pandas as pd
df = pd.DataFrame({'Team':['Duke', 'Duke', 'Duke', 'Kentucky', 'Kentucky'],
'Date':['1-1-20', '1-3-20', '1-7-20', '1-8-20', '1-11-20'],
'Points Scored':['85', '90', '75', '73', '82']})
df

Team Date Points Scored
0 Duke 1-1-20 85
1 Duke 1-3-20 90
2 Duke 1-7-20 75
3 Kentucky 1-8-20 73
4 Kentucky 1-11-20 82

所需的输出将提取每个团队从前一个日期获得的分数。例如,如果这是今年的第一场比赛,它会输出 0。我尝试使用合并功能/转换日期,但它看起来很困惑。想知道是否有人有更简单的方法来获得以下输出,并适用于所有约 353 个团队的更大数据集;
 Team       Date      Points Scored  Previous Game Points Scored
0 Duke 1-1-20 85 0
1 Duke 1-3-20 90 85
2 Duke 1-7-20 75 90
3 Kentucky 1-8-20 73 0
4 Kentucky 1-11-20 82 73

在此先感谢您的帮助!

最佳答案

使用 shift transform ,

import pandas as pd

df = pd.DataFrame({'Team':['Duke', 'Duke', 'Duke', 'Kentucky', 'Kentucky'],
'Date':['1-1-20', '1-3-20', '1-7-20', '1-8-20', '1-11-20'],
'Points Scored':['85', '90', '75', '73', '82']})

df['Previous Game Points Scored'] = (df
.groupby('Team')['Points Scored']
.transform('shift')
.fillna(0))

print(df)
Team Date Points Scored Previous Game Points Scored
0 Duke 1-1-20 85 0
1 Duke 1-3-20 90 85
2 Duke 1-7-20 75 90
3 Kentucky 1-8-20 73 0
4 Kentucky 1-11-20 82 73

关于python - 根据 Python 中的条件从 DataFrame 中提取上一个日期数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794995/

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