I have a DataFrame
. 1 column (name
) has string values. I was wondering if there was a way to select rows based on a partial string match against a particular column, using the DataFrame.query()
method.
I tried:
df.query('name.str.contains("lu")')
. Error message: "TypeError: 'Series' objects are mutable, thus they cannot be hashed"
df.query('"lu" in name')
. Returns an empty DataFrame
.
The code I use:
import pandas as pd
df = pd.DataFrame({
'name':['blue','red','blue'],
'X1':[96.32,96.01,96.05]
}, columns=['name','X1'])
print(df.query('"lu" in name').head())
print(df.query('name.str.contains("lu")').head())
I know I could use df[df['name'].str.contains("lu")]
but I prefer to use
query.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…