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

使用比较运算符根据条件(列)选择行 >

使用比较运算符根据条件(列)选择行 >

跃然一笑 2021-09-28 15:09:14
在发现 python 时,我发现自己在尝试根据列的值(宏观营养素)选择行(食物)时遇到了困难。我的条件使用关系运算,输出不正确。(特别是 > 或 < 运算符没有 == 运算符的问题)。data.loc[data['protein']=='10']我的代码示例的结果结果是正确的,因为所有行(食品)似乎都含有价值 10 的蛋白质。data.loc[data['protein']>'10']我的代码示例的结果结果不正确,因为所有行的值都不符合给定的条件(您有蛋白质 < 10 的行,就像蛋白质 > 10 的行一样)。data.loc[data['protein']>'10']对这个问题有什么想法吗?您认为这与文件格式有关吗(请参阅下面的代码示例)?如果是这样,我该如何解决这个问题?data = pd.read_excel('Documents/test.xlsx',names=col_names,usecols="D,E,F,G,H,J,M,N,P,Q,R,T,Y,Z,AA", index_col =[3]).提前致谢,节日快乐!![编辑]所以做了更多的挖掘,确实我在比较两种不同的东西。@Daniel Mesejo 蛋白质的类型是 Object。由于我希望蛋白质列采用浮点格式,因此我决定先将其转换为字符串,然后再转换为浮点数。不幸的是,使用 将其转换为字符串.astype(str)不起作用
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

使用data['protein'] = data['protein'].astype('int64')将字符串转换为整数,然后重试,你在做什么。


查看完整回答
反对 回复 2021-09-28
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

您的问题是您正在比较字符串而不是整数。更改data.loc[data['protein']>'10']data.loc[int(data['protein'])>10]


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信