如何解决熊猫位置错误:“系列”对象是可变的,因此不能进行散列
嘿,我需要一些有关处理熊猫数据帧的问题的帮助。这是代码:
df.drop(df.index[0],inplace=True)
df.columns = ['Mic. No.','X','Y','Z','Re. Pre.','Im. Pre.']
df['Pre'] = df['Re. Pre.'] + df['Im. Pre.'] * 1j
df.drop(['Mic. No.','Im. Pre.'],axis=1,inplace=True)
if z != 0:
df = df.loc(df['Z'] == z)
我在熊猫数据框中加载了一个Excel工作表。现在,在进行一些预处理之后,数据帧的格式如下:
X Y Z Pre
1 0.16 0.16 0.05 (1.0048704-0.51310315j)
2 0.16 -0.16 0.05 (0.24814222-1.6094971j)
3 -0.16 0.16 0.05 (0.24815122-1.6094059j)
4 -0.16 -0.16 0.05 (1.0048704-0.51310315j)
5 -0.154993 0.154993 0.05 (-0.13939651-1.7231593j)
现在我要删除数据帧中的所有列,但在“ Z”列中没有值z。我收到错误消息:“ TypeError:'Series'对象是可变的,因此无法进行哈希处理”。我不知道该怎么办,因为我怎么看它就像熊猫纪录片中的一样.https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html:
df.loc[df['shield'] > 6]
max_speed shield
sidewinder 7 8
请帮助我。
谢谢!
解决方法
您也可以使用lambda表达式来做到这一点:
df = df[lambda x: x['Z'] == z]
,
您可以将方括号与 df.loc
一起使用:
df = df.loc[df['Z'] == z]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。