ged*_*133 3 python indexing series dataframe pandas
这可能很简单,但我找不到解释,而且这种情况经常发生在我身上。
我正在尝试从Rate1E结束的列中选择值,并查看 pandas DataFrame 中符合上述条件的选定行的3.5其余行。energy之前有人给过我答案,我简单地改为文字如下:
energy = energy.loc[energy[:, 'Rate1E'] >= 3.5]
print(energy.loc[:, 'Rate1E'])
Run Code Online (Sandbox Code Playgroud)
然而我再次发现自己犯了错误:
TypeError: unhashable type: 'slice'
Run Code Online (Sandbox Code Playgroud)
网上的解决方案建议.loc就是答案。有人知道如何修复代码或者更好地向我解释为什么我似乎总是遇到这个错误。
谢谢。
你的语法不正确。你需要:
energy = energy.loc[energy['Rate1E'] >= 3.5]
Run Code Online (Sandbox Code Playgroud)
或者:
energy = energy.loc[energy.loc[:, 'Rate1E'] >= 3.5]
Run Code Online (Sandbox Code Playgroud)
关键点是energy.loc[:, 'Rate1E']系列energy['Rate1E'],后者是访问前者的便捷方式。
不幸的是,Pandas 文档没有明确指定 的允许参数pd.DataFrame.__getitem__,这df[]是语法糖。最流行的用途是: