Loo*_*ast 6 python grep dataframe pandas
我是熊猫的新来者,对于像这样的数据框:
N Chem Val
A Sodium 9
B Sodium 10
A Chlorid 7
B Chlorid 10
A Sodium 17
Run Code Online (Sandbox Code Playgroud)
我想像grep
在bash中一样选择包含'A'
在第一列和'Sodium'
第三列中的行:
A Sodium 9
A Sodium 17
Run Code Online (Sandbox Code Playgroud)
我应该怎么做?我想我需要使用df[].str.contains()
?谢谢
您可以.str.contains()
在数据框的列上使用以返回布尔值Series
。您还可以对多个系列执行逻辑and
和or
运算。最后,将逻辑系列作为键传递给数据框将仅返回正确的值。
bool1 = df.N.str.contains('A') # True for rows of N == 'A'
bool2 = df.Chem.str.contains('Sodium') # True for rows of Chem == 'Sodium'
df[bool1 & bool2] # selects rows where N=='A' AND Chem=='Sodium'
returns (without including the index):
N Chem Val
A Sodium 9
A Sodium 17
Run Code Online (Sandbox Code Playgroud)