我喜欢使用query
而不是loc
,因为它可以与运算符链接一起使用,并且有时可以通过不重复DataFrame
来保存字符> 姓名。
import pandas as pd
dataframe_with_a_long_name = pd.DataFrame({'animals': ['cat', 'dog']})
dataframe_with_a_long_name.query("animals == 'cat'")
如果我想做的事情不受查询
(如str.contains
)的支持,有没有办法做类似的事情?
dataframe_with_a_long_name[dataframe_with_a_long_name.animals.str.contains('c')]
最佳答案
自 0.18.1
起 .loc[]
、.iloc
、.ix
以及 []
accept a callable这样你就可以:
dataframe_with_a_long_name.loc[lambda df: df.animals.str.contains('c')]
animals
0 cat
关于python - 如何以函数式风格对数据框执行复杂的索引查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37201109/