假设这是我的示例输入df
:
date h_league
0 19901126 AA
1 19911127 NA
2 20030130 AA
3 20041217 NaN
4 20080716 AA
5 20011215 NA
6 19970603 NaN
我希望从h_league
中提取独特的联赛,并且还要使两个新列分别为max_date
和最高日期,而min_date
则具有该联赛的最低日期。
# Desired Output:
h_league Max_date Min_date
0 AA 20080716 19901126
1 NA 20011215 19911127
我必须为此任务编写一个函数,该函数返回所需的类似输出,但不返回所需的确切输出。
def league_info(league):
league_games = df[df["h_league"] == league]
earliest = df["date"].min()
latest = df["date"].max()
print("{} went from {} to {}".format(league,earliest,latest))
for league in df["h_league"].unique():
league_info(league)
我正在寻找一种实现所需输出的熊猫方法。任何帮助表示赞赏。谢谢!
答案 0 :(得分:2)
IIUC
df=df.fillna('NA')
df.groupby('h_league').date.agg(['max','min'])
Out[98]:
max min
h_league
AA 20080716 19901126
NA 20041217 19911127
答案 1 :(得分:1)
df2=df.fillna('NA')
df2.groupby('h_league').date.agg(['max','min'])
这对您有用吗?您也可以分配df=df.fillna('NA')
。让我知道这个是否奏效。我试过了。