我在熊貓資料框中有兩列;父母和cte。兩列都由集合組成。我想使用cte列丟棄 parent 列中的重疊專案。資料框由超過 6K 行組成。一些cte行有空集。
下面是一個示例:
data = {'parents': [{'loan_agreement', 'select', 'opportunity', 'sales.dim_date', 'sales.flat_opportunity_detail', 'dets', 'dets2', 'channel_partner'}
,{'seed', 'dw_salesforce.sf_dw_partner_application'}],
'cte': [{'dets', 'dets2'}, {'seed'}]}
df = pd.DataFrame(data)
df
我以前使用過 .discard(cte) ,但我不知道如何讓它作業。
我希望輸出如下所示:
data = {'parents': [{'loan_agreement', 'select', 'opportunity', 'sales.dim_date', 'sales.flat_opportunity_detail', 'channel_partner'}
,{'dw_salesforce.sf_dw_partner_application'}],
'cte': [{'dets', 'dets2'}, {'seed'}]}
df = pd.DataFrame(data)
df
注意:dets、dets2 和 seed 已從相應的父單元格中洗掉。
將cte與parents進行比較后,我不再需要該行的資料。下一行將僅比較該行上的資料,依此類推。
uj5u.com熱心網友回復:
您需要在此處使用回圈。
串列理解可能是最快的:
df['parents'] = [P.difference(C) for P,C in zip(df['parents'], df['cte'])]
輸出:
parents cte
0 {channel_partner, select, opportunity, loan_ag... {dets, dets2}
1 {dw_salesforce.sf_dw_partner_application} {seed}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496087.html
標籤:python-3.x 熊猫 数据框 放
上一篇:R:使用粘貼的參考列名
下一篇:將列中的值覆寫到串列中的下一個值
