【问题标题】:Filter maximum value and corresponding date based on the country time series data using group by?使用 group by 根据国家时间序列数据过滤最大值和对应日期?
【发布时间】:2023-03-15 16:24:02
【问题描述】:

我正在尝试找出哪一天的新病例数最多,并按国家/地区分组。该数据集包含国家时间序列数据列表,包括 COVID 总病例数、新病例数、新测试数等。

预期输出

Country    Date Cases      MaxNew_Cases
USA        2020-06-23      1988
Singapore  2020-05-21      456
Franch     2020-03-12      765

我试过了:

df_test_date.loc[df_test_date['new_cases'].idxmax()]
df1=df_test_date[['location','date']][df_test_date.new_cases == df_test_date['new_cases'].max()]
new_df = df_test_date.groupby('location')['Log_New_Cases'].max()

【问题讨论】:

    标签: python pandas python-2.7 pandas-groupby


    【解决方案1】:
    import pandas as pd
    data = {
        'Country': ['USA', 'Singapore', 'France', 'USA', 'Singapore', 'France', 'USA', 'Singapore', 'France'],
        'Date': ['2020-06-01', '2020-06-01', '2020-06-01', '2020-06-02', '2020-06-02', '2020-06-02', '2020-06-03', '2020-06-03', '2020-06-03'],
        'New_Cases': [100, 200, 300, 600, 500, 400, 123, 345, 523]
    }
    
    df = pd.DataFrame(data)
    idxmax = df.groupby('Country')['New_Cases'].idxmax()
    df.iloc[idxmax]
    

    数据框

         Country        Date  New_Cases
    0        USA  2020-06-01        100
    1  Singapore  2020-06-01        200
    2     France  2020-06-01        300
    3        USA  2020-06-02        600
    4  Singapore  2020-06-02        500
    5     France  2020-06-02        400
    6        USA  2020-06-03        123
    7  Singapore  2020-06-03        345
    8     France  2020-06-03        523
    

    输出

         Country        Date  New_Cases
    8     France  2020-06-03        523
    4  Singapore  2020-06-02        500
    3        USA  2020-06-02        600
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 2018-05-11
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多