Python 如何根据两个条件筛选csv文件中的特定行?(使用熊猫)

Python 如何根据两个条件筛选csv文件中的特定行?(使用熊猫),python,pandas,csv,conditional,Python,Pandas,Csv,Conditional,我的数据帧基本上如下所示:(其中df=pd.read\u csv(csv\u file\u name)) 我只想打印包含'Cholic'作为名称并在文件名中包含'E-1.raw'的行 到目前为止,我只想过做这样的打印声明: print(df[(df['Acid'] == 'Cholic') & ('E-1.raw' in df['File Name'])) 你需要- df[(df['Acid'] == 'Cholic') & (df['File Name'].str.conta

我的数据帧基本上如下所示:(其中df=pd.read\u csv(csv\u file\u name))

我只想打印包含'Cholic'作为名称并在文件名中包含'E-1.raw'的行

到目前为止,我只想过做这样的打印声明:

print(df[(df['Acid'] == 'Cholic') & ('E-1.raw' in df['File Name']))
你需要-

df[(df['Acid'] == 'Cholic') & (df['File Name'].str.contains('E-1.raw')]
输出

     Acid  Ion    File_Name  Area
0  Cholic  390  sth-E-1.raw   594
3  Cholic  330  sth-E-1.raw   700
解释

在这种情况下,您的代码会出现问题,特别是-

'E-1.raw' in df['File Name']
无论字符串
'E-1.raw'
是否存在于完整系列
df['File Name']
中,这都会返回一个真实值。它只会产生一个不是您想要的
True/False


你想逐行过滤掉
df['File Name']
中的每个字符串,看它是否包含
'E-1.raw'
,你可以先将你的系列转换为
str
,然后使用
contains
函数。

你有什么问题吗?谢谢!!我想弄清楚这件事已经有三年了hours@LuisOng-如果答案有用,请不要忘记-单击答案旁边的复选标记,将其从灰色切换为已填写。实际上,我收到了一个错误。python将“contains”后面的单括号作为错误突出显示。我不确定这里有什么问题@VivekKalyanarangan@LuisOng是的,有个打字错误。改良ans
'E-1.raw' in df['File Name']