我有如下定義的資料框,并希望使用變數名稱 ft 進行過濾,如下面的代碼所示:
df = pd.DataFrame([[1,2], [3,4]], columns=['a', 'b'])
ft=["a"]
dt=df[df[ft]==3]
print(dt)
我得到以下結果:
a b
NaN NaN
3.0 NaN
而實際結果應該只是第二行
a b
3 4
我不想使用列名,而是變數。
提前感謝您的幫助
uj5u.com熱心網友回復:
使用標量ft="a"的Series df['a'],而不是一列資料框df[['a']],如果ft=["a"]。
uj5u.com熱心網友回復:
或者,如果不允許更改ft變數,請執行以下操作:
>>> df[df[ft].squeeze() == 3]
a b
1 3 4
>>>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326324.html
