gpt4 book ai didi

python - 查找多列条目之间的日期差异

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

df1=

Date     Team1     Team2
6/1 Boston New York
6/13 New York Boston
6/27 Boston New York

我正在尝试计算自上次波士顿出现在任一列中以来的天数,但我只能弄清楚如何使用 df1['自波士顿比赛以来的天数'] = df1. groupby('Team1')['日期'].diff().fillna(0)

我想要的输出是:

Date     Team1     Team2      Days since Boston played
6/1 Boston New York 0
6/13 New York Boston 12
6/27 Boston New York 14

编辑 - 扩展数据框以了解如何将其应用于所有团队,而不仅仅是一个团队我想要的输出是:

Date     Team1     Team2      Days since **Team1** played
6/1 Boston New York 0
6/13 New York Chicago 12
6/27 Boston New York 14
6/28 Chicago Boston 15

最佳答案

使用 isin 检查 Boston 是否存在于 team1 或 team2 中并查找 timedelta

df['Date'] = pd.to_datetime(df['Date'], format = '%m/%d')

df.loc[df.isin(['Boston']).any(1),'Days since Boston played'] = df.loc[df.isin(['Boston']).any(1), 'Date'].diff().dt.days


Date Team1 Team2 Days since Boston played
0 1900-06-01 Boston New York NaN
1 1900-06-13 New York Boston 12.0
2 1900-06-27 Boston New York 14.0

如果您希望日期列恢复原始格式,可以使用 strftime

df['Date'] = df['Date'].dt.strftime('%m/%d')

Date Team1 Team2 Days since Boston played
0 06/01 Boston New York NaN
1 06/13 New York Boston 12.0
2 06/27 Boston New York 14.0

关于python - 查找多列条目之间的日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53796941/

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