Python 仅从数据帧返回符合两列条件的行

Python 仅从数据帧返回符合两列条件的行,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个数据帧,我只想从中返回列“1”中的值与特定字符串匹配的行,而列“2”中的值是整数 在下面的代码中,我试图生成一组符合条件的索引,然后仅从数据帧中提取这些行 Ok_index = df[(df['1']== "string") & (df['2'] % 1 == 0)].index new_df = df.iloc[Ok_index] 我知道问题在于第二个条件语句,但我不知道如何将相同的逻辑从字符串检查应用到整数检查 以下数据帧: 1. 2. “字符串” 1

我有一个数据帧,我只想从中返回列“1”中的值与特定字符串匹配的行,而列“2”中的值是整数

在下面的代码中,我试图生成一组符合条件的索引,然后仅从数据帧中提取这些行

Ok_index = df[(df['1']== "string") & (df['2'] % 1 == 0)].index

new_df = df.iloc[Ok_index]
我知道问题在于第二个条件语句,但我不知道如何将相同的逻辑从字符串检查应用到整数检查

以下数据帧:

1. 2. “字符串” 1.5 “字符串” 10 “不是字符串” 10 检查是否为整数

检查是否为整数


实际上你的错误在第二行。您正在从数据帧检索索引,因此需要使用.loc对其进行筛选。基本上:

new_df = df.loc[Ok_index]
但如果你想使用熊猫的全部能量,你实际上可以在一条线上完成这一切:

new_df = df[(df['1']== "string") & (df['2'] % 1 == 0)]

您不需要先获取所需行的索引,然后过滤数据帧。您可以一次完成所有这些操作。

实际上,您的错误在第二行。您正在从数据帧检索索引,因此需要使用.loc对其进行筛选。基本上:

new_df = df.loc[Ok_index]
但如果你想使用熊猫的全部能量,你实际上可以在一条线上完成这一切:

new_df = df[(df['1']== "string") & (df['2'] % 1 == 0)]

您不需要先获取所需行的索引,然后过滤数据帧。您可以一次完成所有这些操作。

请提供数据帧和预期输出的可复制示例。请尝试此df_filtered=df[df.1=='string'&df.2%1==0]您可以提供数据帧和预期输出的可复制示例。如果将来出现类似问题,请尝试此df_filtered=df[df.1=='string'&df.2%1==0]@jezrael当然~,让我知道,我真的很喜欢投这个票。谢谢。@jezrael会做的人~@jezrael肯定~如果将来有类似的问题,让我知道,我真的很喜欢投这个票。谢谢你,耶斯雷尔会帮你的~