admin管理员组文章数量:1599543
#Pandas的SettingWithCopyWarning报警
import pandas as pd
#读取Excel,并忽视前2个空行
df = pd.read_csv("D:\\python39\\pandas\\antlearnpandasmaster\\datas\\beijing_tianqi\\beijing_tianqi_2018.CSV")
#将温度字符串类型转换为int32
df.loc[:,'bWendu'] = df['bWendu'].str.replace('℃','').astype('int32')
df.loc[:,'yWendu'] = df['yWendu'].str.replace('℃','').astype('int32')
##复现报警
#只选出3月份的数据用于分析
condition = df.loc[df['ymd'].str.startswith("2018-03"),:]
##设置3月份温差
#df[condition]['wen_cha'] = df['bWendu']-df['yWendu']
###执行上一条代码时,出现错误,不能执行下去,其原因是
'''发出警告的代码df[condition]["wen_cha"] = df["bWendu"]-df["yWendu"]相当于: df.get(condition).set(wen_cha),第一步骤的get发出了报警
链式操作其实是两个步骤,先get后set,get得到的dataframe可能是view也可能是copy,pandas发出警告
官网文档: https:llpandas.pydata/pandas-docs/stable/user_guide/lindexing.htm#returning-a-view-versus-a-copy.
###核心要诀: pandas的dataframe的修改写操作,只允许在源dataframe上进行,一步到位'''
#df.loc[condition,'wen_cha'] =df['bWendu']-df['yWendu']
##解决方法
condition.loc[:,'wen_cha'] = condition['bWendu'] - condition['yWendu']
print(condition.head())
本文标签: 报错BooleanValueErrorpandasArray
版权声明:本文标题:pandas 解决ValueError: Boolean array expected for the condition, not object 报错 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728323441a1154127.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论