即使列標籤不存在,在某些情況下訪問熊貓數據框也不會引發異常。在Pandas中訪問錯誤的列標籤時不會引發異常?
我應該如何檢查這些情況,以避免讀取錯誤的結果?
a = pd.DataFrame(np.zeros((5,2)), columns=['la', 'lb'])
a
Out[349]:
la lb
0 0.0 0.0
1 0.0 0.0
2 0.0 0.0
3 0.0 0.0
4 0.0 0.0
a.loc[:, 'lc'] # Raised exception as expected.
a.loc[:, ['la', 'lb', 'lc']] # Not expected.
Out[353]:
la lb lc
0 0.0 0.0 NaN
1 0.0 0.0 NaN
2 0.0 0.0 NaN
3 0.0 0.0 NaN
4 0.0 0.0 NaN
a.loc[:, ['la', 'wrong_lb', 'lc']] # Not expected.
Out[354]:
la wrong_lb lc
0 0.0 NaN NaN
1 0.0 NaN NaN
2 0.0 NaN NaN
3 0.0 NaN NaN
4 0.0 NaN NaN
更新:有一個建議重複的問題(Safe label-based selection in DataFrame),但它是關於行選擇,我的問題是關於列選擇。
的可能的複製[在數據幀安全基於標籤的選擇] (http://stackoverflow.com/questions/40204834/safe-label-based-selection-in-dataframe) –
我沒有看到這個問題,但它是關於行選擇,我的問題是關於列選擇。 – THN
這是關於使用'loc'的基於標籤的選擇,原理完全一樣。 –