我試圖根據值過濾DataFrame列。基於值(Pandas)過濾列:TypeError:無法將['a']與塊值進行比較
In[41]: df = pd.DataFrame({'A':['a',2,3,4,5], 'B':[6,7,8,9,10]})
In[42]: df
Out[42]:
A B
0 a 6
1 2 7
2 3 8
3 4 9
4 5 10
過濾列:
In[43]: df.loc[:, (df != 6).iloc[0]]
Out[43]:
A
0 a
1 2
2 3
3 4
4 5
它的工作原理!但是,當我使用的字符串,
In[44]: df.loc[:, (df != 'a').iloc[0]]
我得到這個錯誤:TypeError: Could not compare ['a'] with block values
這不會對混合dtypes工作爲你找到的操作前一定要檢查各列的數據類型,執行目前不支持DF的比較在任何列都是純數字類型的情況下,您必須首先過濾df,才能給出對象dtype列,以便不會引發錯誤 – EdChum
@EdChum:謝謝指出。有道理.. – ramesh
我知道這是一個古老的問題,但我認爲他們固定在「熊貓0.21.0」或「0.22.0」。我在我的測試venv中錯誤地做了這件事,它工作。 – Orenshi