【问题标题】:How to create new column from groupby column and conditional check on another column in pandas?如何从 groupby 列创建新列并对 pandas 中的另一列进行条件检查?
【发布时间】:2020-01-17 14:08:37
【问题描述】:

我有一个熊猫数据框,

data = pd.DataFrame([['TRAN','2019-01-06T21:44:09Z','T'],
                     ['LMI','2019-01-06T19:44:09Z','U'],
                     ['ARN','2019-01-02T19:44:09Z','V'],
                     ['TRAN','2019-01-08T06:44:09Z','T'],
                     ['TRAN','2019-01-06T18:44:09Z','U'],
                     ['ARN','2019-01-04T19:44:09Z','V'],
                     ['LMI','2019-01-05T16:34:09Z','U'],
                     ['ARN','2019-01-08T19:44:09Z','V'],
                     ['TRAN','2019-01-07T14:44:09Z','T'],
                     ['TRAN','2019-01-06T11:44:09Z','U'],
                     ['ARN','2019-01-10T19:44:09Z','V'],
                     ], 
                    columns=['Type', 'Date', 'Decision'])

我需要按类型列分组并找到每种类型的最小日期,并为最小日期创建一个新列作为“第一个”,否则为“稍后”

我可以根据类型data.groupby('Type'),我不知道如何在groupdyDF中找到min(data['Date'])并创建一个新列。

我的最终数据看起来像

['TRAN','2019-01-06T21:44:09Z','T','Later'],
['LMI','2019-01-06T19:44:09Z','U','Later'],
['ARN','2019-01-02T19:44:09Z','V','First'],
['TRAN','2019-01-08T06:44:09Z','T','Later'],
['TRAN','2019-01-06T18:44:09Z','U','Later'],
['ARN','2019-01-04T19:44:09Z','V','Later'],
['LMI','2019-01-05T16:34:09Z','U','First'],
['ARN','2019-01-08T19:44:09Z','V','Later'],
['TRAN','2019-01-07T14:44:09Z','T','Later'],
['TRAN','2019-01-06T11:44:09Z','U','First'],
['ARN','2019-01-10T19:44:09Z','V','Later'],
], 
columns=['Type', 'Date', 'Decision']

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    IIUC 你可以用这个:

    df.groupby('Type').agg(First=('Date','first'), Later=('Date','last')).reset_index()
    

    【讨论】:

      【解决方案2】:

      IICU,你可以使用np.where 来获取你的输出

      data['check']=np.where(data.Date > data.groupby('Type')['Date'].transform(min), 'Later','First')
      print(data)
      

      输出

          Type            Date    Decision    check
      0   TRAN    2019-01-06T21:44:09Z    T   Later
      1   LMI     2019-01-06T19:44:09Z    U   Later
      2   ARN     2019-01-02T19:44:09Z    V   First
      3   TRAN    2019-01-08T06:44:09Z    T   Later
      4   TRAN    2019-01-06T18:44:09Z    U   Later
      5   ARN     2019-01-04T19:44:09Z    V   Later
      6   LMI     2019-01-05T16:34:09Z    U   First
      7   ARN     2019-01-08T19:44:09Z    V   Later
      8   TRAN    2019-01-07T14:44:09Z    T   Later
      9   TRAN    2019-01-06T11:44:09Z    U   First
      10  ARN     2019-01-10T19:44:09Z    V   Later
      

      【讨论】:

        猜你喜欢
        • 2021-10-09
        • 2020-07-07
        • 2021-06-11
        • 1970-01-01
        • 1970-01-01
        • 2021-03-02
        • 2019-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多