這可能很簡單,但我找不到解釋,而且它一直發(fā)生在我身上。我正在嘗試從Rate1E已結(jié)束的列中選擇值,3.5并查看 Pandas DataFrameenergy中符合上述條件的選定行的其余行。我之前有人給了我一個答案,并簡單地更改為文本如下:energy = energy.loc[energy[:, 'Rate1E'] >= 3.5]print(energy.loc[:, 'Rate1E'])但是,我再次發(fā)現(xiàn)自己遇到了錯誤:TypeError: unhashable type: 'slice'在線解決方案提示.loc就是答案。有人知道如何修復代碼或更好地向我解釋為什么我似乎總是得到那個錯誤。
2 回答

慕運維8079593
TA貢獻1876條經(jīng)驗 獲得超5個贊
你的語法不正確。你需要:
energy = energy.loc[energy['Rate1E'] >= 3.5]
或者:
energy = energy.loc[energy.loc[:, 'Rate1E'] >= 3.5]
關(guān)鍵點是energy.loc[:, 'Rate1E']
和energy['Rate1E']
是系列,后者是訪問前者的便捷方式。
不幸的是,Pandas 文檔沒有為 指定精確允許的參數(shù)pd.DataFrame.__getitem__
,它df[]
是語法糖。最流行的用途是:
提供一個字符串來給出一個系列。
提供一個列表來給出一個數(shù)據(jù)框。
提供布爾系列來過濾您的數(shù)據(jù)框。

守著星空守著你
TA貢獻1799條經(jīng)驗 獲得超8個贊
你的要求energy[:, 'Rate1E']
是做一些與你期望不同的事情。你正在尋找一個.loc[]
電話。
energy = energy.loc[energy['Rate1E'] >= 3.5] print(energy['Rate1E'])
添加回答
舉報
0/150
提交
取消