我有一個資料框。
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'vin':['aaa','aaa','aaa','bbb','ccc','ccc','ddd','eee','eee','fff'],
'module':['ABS','ABS','IPMA','BCCM','HPOC','ABS','ABS','HPOC','ABS','ABS']})
我想將列模塊的所有值與列vin連接起來。
以下是我的預期輸出。
df1 = pd.DataFrame({'vin':['aaa','aaa','aaa','bbb','ccc','ccc','ddd','eee','eee','fff'],
'module':['ABS','ABS','IPMA','BCCM','HPOC','ABS','ABS','HPOC','ABS','ABS'],
'New_module':['ABS-ABS-IPMA','ABS-ABS-IPMA','ABS-ABS-IPMA','BCCM','HPOC-ABS','HPOC-ABS','ABS','HPOC-ABS','HPOC-ABS','ABS']})
我嘗試了一種方法,其中我必須復制資料框并應用下面的代碼。
df_merge = pd.merge(df2, df1.groupby(['vin'])['module'].apply(list), on ='vin', how ='left')
df_merge['module'] = df_merge['module'].astype('str').str.replace("\[|\]|\'| ","")
df_merge
任何簡單的代碼來獲得我想要的輸出?
uj5u.com熱心網友回復:
您可以groupby.transform使用join:
df1['New_module'] = df1.groupby('vin')['module'].transform('-'.join)
輸出:
vin module New_module
0 aaa ABS ABS-ABS-IPMA
1 aaa ABS ABS-ABS-IPMA
2 aaa IPMA ABS-ABS-IPMA
3 bbb BCCM BCCM
4 ccc HPOC HPOC-ABS
5 ccc ABS HPOC-ABS
6 ddd ABS ABS
7 eee HPOC HPOC-ABS
8 eee ABS HPOC-ABS
9 fff ABS ABS
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527145.html
上一篇:如何在def函式中參考單列
