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

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

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