为了账号安全,请及时绑定邮箱和手机立即绑定

TypeError: unhashable type: 'slice' pandas

TypeError: unhashable type: 'slice' pandas

SMILET 2021-08-17 18:19:04
这可能很简单,但我找不到解释,而且它一直发生在我身上。我正在尝试从Rate1E已结束的列中选择值,3.5并查看 Pandas DataFrameenergy中符合上述条件的选定行的其余行。我之前有人给了我一个答案,并简单地更改为文本如下:energy = energy.loc[energy[:, 'Rate1E'] >= 3.5]print(energy.loc[:, 'Rate1E'])但是,我再次发现自己遇到了错误:TypeError: unhashable type: 'slice'在线解决方案提示.loc就是答案。有人知道如何修复代码或更好地向我解释为什么我似乎总是得到那个错误。
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

你的语法不正确。你需要:

energy = energy.loc[energy['Rate1E'] >= 3.5]

或者:

energy = energy.loc[energy.loc[:, 'Rate1E'] >= 3.5]

关键点是energy.loc[:, 'Rate1E']energy['Rate1E']是系列,后者是访问前者的便捷方式。

不幸的是,Pandas 文档没有为 指定精确允许的参数pd.DataFrame.__getitem__,它df[]是语法糖。最流行的用途是:

  • 提供一个字符串来给出一个系列。

  • 提供一个列表来给出一个数据框。

  • 提供布尔系列来过滤您的数据框。


查看完整回答
反对 回复 2021-08-17
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

你的要求energy[:, 'Rate1E']是做一些与你期望不同的事情。你正在寻找一个.loc[]电话。

energy = energy.loc[energy['Rate1E'] >= 3.5]
print(energy['Rate1E'])


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 852 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号