簡體   English   中英

如何從 groupby 列創建新列並對熊貓中的另一列進行條件檢查?

[英]How to create new column from groupby column and conditional check on another column in pandas?

我有一個熊貓數據框,

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']

IIUC你可以使用這個:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM