
我在資料框中有三個單獨的列: Link_Id, NEW, 。Length
我想將相似Link_Id的 s 組合在一起,然后收集它們的Length值,從那些具有最大值的Length值中,我想回傳它們的 ( Link_Id) 和 ( NEW) 列值。
import pandas as pd
# List all columns you want to include in the dataframe. I include all with:
cols = ['LINK_ID', 'NEW', 'Length'] # Or list them manually: ['kommunnamn', 'kkod', ... ]
# A generator to yield one row at a time
datagen = ([f[col] for col in cols] for f in vlayer.getFeatures())
df = pd.DataFrame.from_records(data=datagen, columns=cols)
dff = df.groupby((df['LINK_ID'].shift() != df['LINK_ID']).cumsum())
for k, v in dff:
print(f'[group {k}]')
print(v)
result = df.groupby('LINK_ID').agg({'Length': ['max']})
uj5u.com熱心網友回復:
IIUC,嘗試:
result = df.loc[df.groupby("LINK_ID")["Length"].idxmax()]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/441421.html
上一篇:將值添加到閾值以下的串列中
