![](/img/trans.png)
[英]How to create a new column with a conditional count in a groupby pandas dataFrame
[英]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.