我有3點字典: A,B,C如何在基於字典的多列上過濾熊貓數據框?
和大熊貓數據幀與這些列:
['id',
't1',
't2',
't3',
't4']
現在我想要做的就是隻保留那些行,其T1存在於字典一,T2在字典B和T3在字典ç
我試過據幀[「T1」在一 這給出了一個錯誤:Series對象是可變的,不能散列...
我有3點字典: A,B,C如何在基於字典的多列上過濾熊貓數據框?
和大熊貓數據幀與這些列:
['id',
't1',
't2',
't3',
't4']
現在我想要做的就是隻保留那些行,其T1存在於字典一,T2在字典B和T3在字典ç
我試過據幀[「T1」在一 這給出了一個錯誤:Series對象是可變的,不能散列...
你可以嘗試這樣的事情。
df.loc[(df['t1'].isin(A.keys()) & df['t2'].isin(B.keys()) & df['t3'].isin(C.keys()))]
我希望這是你想要的。
In [51]: df
Out[51]:
t1 t2 t3 t4 max_value
0 1 4 5 2 5
1 34 70 1 5 70
2 43 89 4 11 89
3 22 76 4 3 76
In [52]: A = {34: 4}
In [53]: B = {70: 5, 89: 3}
In [54]: C = {1: 3, 5:1}
In [55]: df.loc[(df['t1'].isin(A.keys()) & df['t2'].isin(B.keys()) & df['t3'].isin(C.keys()))]
Out[55]:
t1 t2 t3 t4 max_value
1 34 70 1 5 70
要回答@EdChum,我假設OP想要檢查字典鍵中值的存在。
我們如何知道,如果OP要檢查的字典鍵或字典值的成員? – EdChum
@Sagar是正確的,這就是我想要的......想嘗試更明確下一次要.. –
您的問題沒有完全說明,爲什麼在這裏使用時類型的字典,你可以通過列表來['isin'(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.isin。 HTML)爲每個col? – EdChum