代码之家  ›  专栏  ›  技术社区  ›  Sai Kumar

提取唯一值并根据条件生成新的数据帧

  •  0
  • Sai Kumar  · 技术社区  · 7 年前

    假设这是我的示例输入 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 再做两个新的cols一个是 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)
    

    2 回复  |  直到 7 年前
        1
  •  2
  •   BENY    7 年前

    df=df.fillna('NA')
    df.groupby('h_league').date.agg(['max','min'])
    Out[98]: 
                   max       min
    h_league                    
    AA        20080716  19901126
    NA        20041217  19911127
    
        2
  •  1
  •   Harikrishna    7 年前
    df2=df.fillna('NA')  
    df2.groupby('h_league').date.agg(['max','min'])
    

    这对你有用吗?您可以指定 df=df.fillna('NA')