首页 > 解决方案 > 使用比较运算符根据条件(列)选择行 >

问题描述

在发现 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 蛋白质的类型是对象。由于我希望将蛋白质列设为浮点格式,因此我决定先将其转换为字符串,然后再转换为浮点数。不幸的是,使用 将其转换为字符串.astype(str)不起作用

结果

标签: pythonconditional-statementsrows

解决方案


用于data['protein'] = data['protein'].astype('int64')将字符串转换为整数,然后重试您正在执行的操作。


推荐阅读