Python 如何根据两个条件筛选csv文件中的特定行?(使用熊猫)
我的数据帧基本上如下所示:(其中df=pd.read\u csv(csv\u file\u name)) 我只想打印包含'Cholic'作为名称并在文件名中包含'E-1.raw'的行 到目前为止,我只想过做这样的打印声明: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
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']