最近看到一個很有意思的問題。我試圖找到一個解決方案,但我無法讓它發揮作用。基本上,我正在嘗試過濾資料框中的特定列。這是設定。
import pandas as pd
import numpy as np
df = pd.DataFrame({'cd1' : ['PFE1', 'PFE25', np.nan, np.nan],
'cd2' : [np.nan, 'PFE28', 'PFE23', 'PFE14'],
'cd3' : ['PFE15', 'PFE2', 'PFE83', np.nan],
'cd4' : ['PFE25', np.nan, 'PFE39', 'PFE47'],
'cd5' : [np.nan, 'PFE21', 'PFE53', 'PFE15']})
df
df['combined'] = df.agg(lambda x: list(x.dropna()), axis=1)
spec_list = ['PFE15', 'PFE25']
df
這給了我這個。

如何僅過濾“spec_list”?最終結果將如下所示。

uj5u.com熱心網友回復:
如果您不介意有一個沒有匹配項的空串列,您可以這樣做:
spec_set = set(spec_list)
df.combined.map(lambda x: list(spec_set.intersection(x))))
結果:
0 [PFE15, PFE25]
1 [PFE25]
2 []
3 [PFE15]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/484302.html
標籤:Python python-3.x
